본문 바로가기
SQLD 준비/SQLD 책 정리

공부장

by Woodland 2017. 11. 24.

- 관계형 데이터베이스 개요 -


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