백엔드 개발 공부 일지
인공지능 부트캠프 24기 _ 1일차 (제약조건, SQL 문 종류) 본문
※ 제약 조건 ※
< 제약 조건 이란? >
제약조건은 데이터 베이스(관계형 데이터 포함)의 무결성의 원칙을 지키기 위하여 사용되어진다.
제약조건을 설정할 경우 해당 조건에 위배되는 데이터는 저장되지 않게된다.
* 관계형 데이터
제약조건을 사용하게 되는 2차원 테이블 형태의 데이터
- 2차원의 Column과 Record로 구성되어진다
- 값이 없을 경우 null값으로 표현
<제약 조건의 종류>
1) Primary key
- Table 당 한번만 사용이 가능
- 유일한 값이 존재하는 column에 사용되며 null 값은 저장이 이 안된다
- 레코드 식별 용도로 사용된다. (주민번호, 학번, 사원번호 등등)
- 이 제약조건을 통해 index가 자동으로 생성되며 검색속도를 빠르게 할 수 있다. (Full Scan >>> Index Scan)
2) Unique
- PK 와 같이 유일한 값을 가져야 하지만 null 값을 포함한다.
- PK 와 같이 index 자동 생성되기에 역시 검색속도가 향상되게 된다.
- PK와 달리 table 당 여러개 사용이 가능하다
3) Not null
- 말그대로 null 값을 포함하지 않는다.
- 중요 !! : 4가지의 제약조건과 다르게 문법상 추가의 의미가 아닌 변경의 의미를 가진다. 세부적인 것은 추후 강의에 들을 예정
- 역시 table당 여러개 지정이 가능하다
4) Check
- 그저 column에 저장되는 데이터 값의 범위를 지정하는 것
- 데이터 이름 통일 혹은 학년의 범위를 지정하는데 사용되어진다. (데이터를 보기쉽게 정제하는 느낌의 제약 조건인듯)
5) Forien key
- 다른 테이블을 참조할때 사용되어진다. 그러므로 테이블 2개이상일 때 사용되어진다.
- Slave table 에서 Master table 로 진행되며 Master table의 column은 무조건 PK 혹은 unique인 경우에만 가능
- 다시 말해 foreign key는 master table의 PK, Unique 또는 null 값만을 가지고 있으며 다른 값은 존재 불가
<제약 조건 확인 방법>
select *
from user_constraints;
명령어를 입력하게 되면 해당 계정에 사용되는 모든 제약조건이 표시된다.
※ SQL 문 ※
< SQL 문 이란? >
사용자와 데이터베이스를 연결시켜주는 표준 검색 언어(Structured Query Language)이다.
기본적인 SQL 문은 Oracle에서만 사용 가능하며 모든 DBMS에서 사용이 가능한 ANSI(Ameriacn National Institute)이 있다.
< SQL 문 종류 >
1) Query Language
- QL은 Table의 검색 용도로 사용되어진다.
1. projection - colmun 별 검색
2. selection - record 별 검색
3. join - table 별 검색
- 검색할시 select 문장과 함꼐 사용되어지는 듯 하다.
2) DML (Data Manipulation Language)
-말그대로 Memory 데이터를 조작(생성, 삭제, 수정)하는 문장
1. insert 문 - 레코드 생성
2. delete 문 - 레코드 삭제
3. update 문 - 레코드 수정
4. merge 문 - 병합, 내부적으로 위 3개의 문장을 사용하는 것을 의미 한다.
중요 !! Oracle을 포함한 모든 software는 기본적으로 Memory data와 물리적인 파일정보로 구성된다.
DML 은 물리적인 파일정보를 절대 변경 시키지 않는다. 물리적인 파일 정보를 변경 시키기 위해서는 아래의 TCL을 필히 이용하여야 한다!!
물리적인 파일정보가 뭔데?
C:\oraclexe\app\oracle\oradata\XE 와 같이 oracle data 서비스 파일에 .dbf 파일로 저장되어진 정보.
컴퓨터를 꺼도 지워지지 않는 데이터 정보이다.
3) TCL (Transaction Control Lanuage)
- 말 그대로 Memory data와 물리적인 파일정보의 상호작용을 위한 문장이다.
1. commit - 메모리 내용을 물리적인 파일정보에 반영시킨다.
2. rollback - commit 하지 않고 메모리정보로만 남기는 것을 의미한다.
다시, Transaction을 더 정확히 말하자면
DML이랑 관련되었으며 query language와는 전혀 관련히 없다.
즉, DML문을 사용할떄에 모든 작업을 Tranaction을 통해 하나의 동작처럼 묶어 성공시 commit! 실패시 전체 rollback을 하는 방법으로 사용되어 진다.
4) DDL (Data Definition Language)
- 객체와 관련된 문장으로 객체를 생성, 수정, 삭제하는 용도로 사용되어진다.
DDL은 DML 과 다르게 자동으로 Commit이 된다.. = 물리적인 파일정보로 바로 저장이 된다.
즉, Roll back이 불가능하기에 돌리고 싶으면 delet을 통해 삭제하여야 한다.
객체는 5개의 종류로 나누어진다
1. table
2. index - table 검색속도 향상
3. view - table data 보호, sql 문 간소화
4. sequence - table 특정 column 값 자동 넘버링
5. synonym - table 명을 별칭 (보안목적)
'SQL' 카테고리의 다른 글
인공지능 부트캠프 24기 _ 4일차 (그룹함수, Oracle JOIN) (0) | 2022.09.15 |
---|---|
인공지능 부트캠프 24기 _ 3일차 (SQL 함수, 단일항 함수) (0) | 2022.09.11 |
인공지능 부트캠프 24기 _ 2일차 (Where 절, Order by 절) (0) | 2022.09.07 |
인공지능 부트캠프 24기 _ 2일차 (관계형 데이터 구조, Select 문 ) (0) | 2022.09.07 |
인공지능 부트캠프 24기 _ 1일차 (개요) (0) | 2022.09.05 |
Comments