- 관계형 데이터베이스 개요 -
1. 데이터베이스
- DBMS :
효율적인 데이터의 관리 뿐만 아니라 예기치 못한 사건으로 인한 데이터의 손상을 피하고 필요시 필요한 데이터를 복구하기 위한 강력한 기능의 소프트웨어를 필요로 하게 되었고 이러한 기본적인 요구사항을 만족시켜주는 시스템을 DBMS라고 한다.
- 관계형 데이터베이스 :
E.F.Codd가 소개. 기존에 사용되던 파일시스템, 계층형, 망형데이터베이스를 대신해서 사용됨.
2. 정규화
우리가 운동선수와 관련된 데이터를 저장할때 하나의 테이블로 모든 정보를 저장하는게 아님.
복수의 테이블로 분할해서 저장하는데, 이 분할된 테이블은 그 칼럼의 값에 의해 연결된다.
이렇게 케이블을 분할하여 데이터의 불필요한 중복을 줄이는 것을 정규화라고 한다.
데이터의 정합성 확보와 데이터 입력/수정/삭제 시 발생할 구 있는 이상현상을 방지하기 위해 정규화는 관계형 데이터베이스 모델링에서 매우 중요한 프로세스이다.
- 기본키 :
각 행을 한 가지 의미로 특정할 수 있는 한 개 이상의 칼럼을 지칭함.
ex> 선수번호, 팀코드
-외부키 :
다른 테이블의 기본키로 사용되고 있는 관계를 연결하는 칼럼.
ex> 팀코드
4. 테이블과 칼럼의 정의
- 테이블에 존재하는 모든 데이터를 고유하게 식별할 수 있으면서 반드시 값이 존재하는 단일 칼럼이나 칼럼의 조합들 중에 하나를 선정하여 기본키 칼럼으로 지정한다.
--- DML ---
1. CREATE TABLE
- 테이블과 테이블 간의 정의된 관계는 기본키와 외부키를 잘 활용해서 설정하도록 한다. ->> 안그러면 특정 컬럼 수정/삭제시 Anomaly 발생할 수 있다.
테이블을 생성하는 구문은 다음과 같다.
CREATE TABLE 테이블 이름 (
칼럼명1 데이터타입 [DEFAULT 형식],
칼럼명2 데이터타입 [DEFAULT 형식]
);
- 테이블 생성시에 생각해야 할 규칙
1. 테이블 명은 객체를 의미할 수 있는 적절한 이름을 사용한다.
2. 가능한 단수형을 권고한다.
3. 테이블의 이름은 다른 테이블의 이름과 중복되지 않아야 한다.
4. 한 테이블 내에서는 칼럼명이 중복되게 지정될 수 없다.
5. 테이블 이름을 지정하고 각 칼럼들은 괄호"로 묶어 지정한다.
6. 각 칼럼들은 콤마 "," 로 구분되고, 테이블 생성문의 끝은 항상 세미콜론 ; 으로 끈난다.
7. 테이블명과 칼럼명은 반드시 문자로 시작해야하고 벤더별로 길이에 대한 한계가 있다,
8. 특수문자 '-' 는 허용되지 않는다.
- 제약조건:
CONSTRAINT - 제약조건이란 사용자가 원하는 조건의 데이터만 유지하기 위한 즉, 데이터의 무결성을 유지하기 위한 데이터베이스의 보편적인 방법으로 테이블의 특정 칼럼에 설정하는 제약이다.
테이블을 생성할 때 제약조건을 반드시 기술할 필요는 없지만, 이후에 고치려면 상당히 어려우므로, 설계지점부터 면밀히 만들어야함.
1. PRIMARY KEY
하나의 테이블에 하나의 기본키 제약만 정의할 수 있다.
기본키 제약을 정의하면 DBMS는 자동으로 UNIQUE 인덱스를 생성하며, 기본키를 구성하는 칼럼에는 NULL을 입력할 수 없다.
결국 '기본키 제약=고유키 제약& NOT NULL 제약'이 된다.
2, UNIQUE KEY
http://www.dbguide.net/db.db?cmd=view&boardUid=148190&boardConfigUid=9&categoryUid=216&boardIdx=134&boardStep=1