Data Define Language

 - SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는 명령문

 - DDL로 정의된 내용은 Meta-data가 되며, 시스템 카탈로그에 저장한다.






CREATE SCHEMA

 - 스키마를 정의하는 명령문

 - 스키마의 식별을 위해 스키마 이름과 소유권자나 허가권자를 정의한다.


CREATE SCHEMA 스키마이름 AUTHORIZATION 사용자아이디;

ex ) CREATE SCHEMA 대학교 AUTHORIZATION 홍길동







CREATE DOMAIN

 - 도메인을 정의한느 명령문이다.

 - 임의의 애트리뷰트에서 취할 수 있는 원자값의 범위가 SQL에서 지원하는 data_type에 

포함하는 전체 값이 아니고 일부분일 때 사용자가 그 값의 범위를 사용자의 data_type으로 정의


CREATE DOMAIN 도메인이름 data_type

[DEFAULT 초기값정의]

[CONSTRAINT VALID-도메인이름 CHECK (범위값)];

ex ) CREATE DOMAIN SEX CHAR(1)

DEFAULT '여'

CONSTRAINT VALID-SEX CHECK(VALUE IN ('남', '여', '?'));







CREATE TABLE

 - 기본 테이블을 정의하는 명령문


CREATE TABLE 기본테이블이름

(속성명 data_type [NOT NULL], ... ,

PRIMARY KEY(기본키속성명),

UNIQUE(대체키속성명),

FOREIGN KEY(외래키속성명),

REFERENCES 참조테이블(기본키속성명),

CONSTRAINT 제약조건명 CHECK(조건식));

ex ) CREATE TABLE 학생

(이름 VARCHAR(15) NOT NULL,

학번 VARCHAR(15) NOT NULL,

전공 VARCHAR(15) NOT NULL,

성별 SEX,

생년월일 DATE,

PRIMARY KEY(학번),

FOREIGN KEY(전공),

REFERENCE 학과(학과코드),

CONSTRAINT 성별제약 CHECK(성별='남'));







CREATE INDEX

 - 인덱스를 정의하는 명령문


CREATE [UNIQUE] INDEX 인덱스이름

ON 기본테이블이름({속성이름[ASC | DESC],})

[CLUSTER]

UNIQUE : 기본키나 대체키 같은 중복되는 값이 없는 속성으로 인덱스를 생성할 때

ASC : 오름차순 정렬

DESC : 내림차순 정렬

CLUSTER : 동일 인덱스 값을 갖는 튜플들을 그룹으로 묶을 때 사용


ex ) CREATE UNIQUE INDEX 고객번호INX

ON 고객(고객번호 ASC);








ALTER TABLE

 - 테이블에 대한 정의를 변경하는 명령문


ALTER TABLE 기본테이블이름 ADD 속성이름 data_type [DEFAULT '기본값'];

ALTER TABLE 기본테이블이름 ALTER 속성이름 [SET DEFAULT '기본값'];

ALTER TABLE 기본테이블이름 DROP 속성이름 [CASCADE];

ADD : 새로운 속성을 추가

ALTER : 특정 속성의 DEFAULT 값을 변경할 때 사용

DROP : 특정 속성을 삭제할 때 사용


ex ) ALTER TABLE 학생 ADD 학년 VARCHAR(3);







DROP

 - 스키마, 도메인, 기본 테이블 , 뷰 테이블, 인덱스 등을 삭제하는 명령문이다.


DROP SCHEMA 스키마이름 [CASCADE | RESTRICTED];

DROP DOMAIN 도메인이름  [CASCADE | RESTRICTED];

DROP TABLE 기본테이블이름  [CASCADE | RESTRICTED];

DROP VIEW 뷰이름  [CASCADE | RESTRICTED];

DROP INDEX 인덱스이름

CASCADE : 삭제할 요소를 참조하는 다른 모든 개체를 함께 삭제한다.

RESTRICTED : 삭제할 요소를 다른 개체가 참조중일 때는 삭제를 취소한다.




'ComputerScience > Database' 카테고리의 다른 글

뷰(VIEW)  (0) 2017.10.25
SQL - DML  (0) 2017.10.20
정규화  (0) 2017.10.19


 - 함수의 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 

더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정

 - 정규화를 거치지 않으면 Anomaly가 발생할 수 있다.

 - 1NF, 2NF, 3NF, BCNF, 4NF, 5NF





1NF(제1정규형)

 - 릴레이션에 속한 모든 도메인이 원자값만으로 되어 있는 릴레이션








2NF(제2정규형)

 - 릴레이션 R이 1NF이고, 키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속 관계를 만족








3NF(제3정규형)

 - 릴레이션 R이 2NF이고, 키가 아닌 모든 애트리뷰트가 기본키에 대해 이행적 종속 관계를 이루지 않도록 제한한 관계형이다.







BCNF(Boyce-Codd 정규형)

 - 릴레이션 R에서 결정자가 모두 후보키인 관계형







4NF(제4정규형)

 - 릴레이션 R에 A->B가 성립하는 경우 R의 모든 속성이 A에 함수적 종속이면 이 릴레이션 R은 4정규형에 속한다.







5NF(제5정규형, PJ/NF)

 - 릴레이션 R의 모든 조인 종속성(JD)의 만족이 R의 후보키를 통해서만 만족될 때 그 릴레이션 R은 제5정규형 또는 PJ/NF에 속한다.

'ComputerScience > Database' 카테고리의 다른 글

뷰(VIEW)  (0) 2017.10.25
SQL - DML  (0) 2017.10.20
SQL - DDL  (0) 2017.10.20


물리 계층

물리 계층(Physical layer)은 네트워크의 기본 네트워크 하드웨어 전송 기술을 이룬다. 네트워크의 높은 수준의 기능의 논리 데이터 구조를 기초로 하는 필수 계층이다. 다양한 특징의 하드웨어 기술이 접목되어 있기에 OSI 아키텍처에서 가장 복잡한 계층으로 간주된다.








데이터링크 계층

데이터 링크 계층(Data link layer)은 포인트 투 포인트(Point to Point) 간 신뢰성있는 전송을 보장하기 위한 계층으로 CRC 기반의 오류 제어와 흐름 제어가 필요하다. 네트워크 위의 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류를 찾아 내고, 수정하는 데 필요한 기능적, 절차적 수단을 제공한다. 주소 값은 물리적으로 할당 받는데, 이는 네트워크 카드가 만들어질 때부터 맥 주소(MAC address)가 정해져 있다는 뜻이다. 주소 체계는 계층이 없는 단일 구조이다. 데이터 링크 계층의 가장 잘 알려진 예는 이더넷이다. 이 외에도 HDLC나 ADCCP 같은 포인트 투 포인트(point-to-point) 프로토콜이나 패킷 스위칭 네트워크나 LLC, ALOHA 같은 근거리 네트워크용 프로토콜이 있다. 네트워크 브릿지나 스위치 등이 이 계층에서 동작하며, 직접 이어진 곳에만 연결할 수 있다.








네트워크 계층

네트워크 계층(Network layer)은 여러개의 노드를 거칠때마다 경로를 찾아주는 역할을 하는 계층으로 다양한 길이의 데이터를 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 제공하기 위한 기능적, 절차적 수단을 제공한다. 네트워크 계층은 라우팅, 흐름 제어, 세그멘테이션(segmentation/desegmentation), 오류 제어, 인터네트워킹(Internetworking) 등을 수행한다. 라우터가 이 계층에서 동작하고 이 계층에서 동작하는 스위치도 있다. 데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만드는 계층이다. 논리적인 주소 구조(IP), 곧 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며, 계층적(hierarchical)이다.








전송 계층

전송 계층(Transport layer)은 양 끝단(End to end)의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해 주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다. 시퀀스 넘버 기반의 오류 제어 방식을 사용한다. 전송 계층은 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고(stateful), 연결 기반(connection oriented)이다. 이는 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 뜻한다. 가장 잘 알려진 전송 계층의 예는 TCP이다.








세션 계층

세션 계층(Session layer)은 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다. 동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full Duplex)의 통신과 함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정 등을 수행한다. 이 계층은 TCP/IP 세션을 만들고 없애는 책임을 진다.








표현 계층

표현 계층(Presentation layer)은 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어 준다. MIME 인코딩이나 암호화 등의 동작이 이 계층에서 이루어진다. 예를 들면, EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔 주는 것이 표현 계층의 몫이다.








응용 계층

응용 계층(Application layer)은 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다. 일반적인 응용 서비스는 관련된 응용 프로세스들 사이의 전환을 제공한다. 응용 서비스의 예로, 가상 터미널(예를 들어, 텔넷), "Job transfer and Manipulation protocol" (JTM, 표준 ISO/IEC 8832) 등이 있다.







위키피디아 참조 

https://ko.wikipedia.org/wiki/OSI_%EB%AA%A8%ED%98%95



+ Recent posts