DB 계정 관리
- 일반적으로 DB 계정 생성 시, 읽기만 가능한 계정으로 팀원들에게 뿌린다.
- SELECT만 가능하게 해서, 데이터의 무결성(안정성)을 확보할 수 있다.
- 보통 사내 1명 정도 있는데, 주기적으로 DB 계정 비밀번호를 바꾸는 등 데이터베이스를 관리한다.
DB 용어 정리
릴레이션의 특징
- 속성은 단일 값을 가진다
- 속성은 서로 다른 이름을 가진다
- 한 속성의 값은 모두 같은 도메인 값을 가진다(값을 갖는 범위가 같아야한다)
- 속성의 순서는 상관없다
- 릴레이션 내의 중복된 투플은 허용하지 않는다
- 투플의 순서는 상관없다
키
- 특정 투플을 식별할 때 사용하는 속성 혹은 속성의 집합임
- 릴레이션은 중복된 투플을 허용하지 않기 때문에 각각의 투플에 포함된 속성들 중 어느 하나(혹은 하나 이상)는 값이 달라야함.
기본키(primary key)
- 여러 후보키 중 하나를 선정하여 대표로 삼는 키
- 후보키가 하나 뿐이라면 그 후보키를 기본키로 사용하면 되고, 여러개라면 릴레이션의 특성을 반영하여 하나를 선택하면 됨
- 릴레이션 내 투플을 식별할 수 있는 고유한 값을 가져야함
- NULL 값은 허용하지 않음
- 키 값의 변동은 일어나지 않아야함
- 최대한 적은 수의 속성을 가진 것이어야함.
- 릴레이션 스키마 표현할 때는 기본키는 밑줄을 그어 표시함
릴레이션 이름(속성1, 속성2, ..., 속성 N)
외래키(Reference Key)
- 다른 릴레이션의 기본키를 참조하는 속성을 말함.
- 다른 릴레이션의 기본키를 참조하여 관계 데이터 모델의 특징인 릴레이션 간의 관계를 표현함.
- 관계 데이터 모델의 릴레이션 간의 관계를 표현함.
- 다른 릴레이션의 기본키를 참조하는 속성임.
- 참조하고(외래키) 참조되는(기본키) 양쪽 릴레이션의 도메인은 서로 같아야 함.
- 참조되는(기본키) 값이 변경되면 참조하는(외래키) 값도 변경됨.
- NULL 값과 중복 값 등이 허용됨.
- 자기 자신의 기본키를 참조하는 외래키도 가능함.
- 외래키가 기본키의 일부가 될 수 있음.
후보키
- 투플을 유일하게 식별할 수 있는 속성의 최소 집합
SQL 기능에 따른 분류
데이터 정의어(DDL)
테이블이나 관계의 구조를 생성하는데 사용하며 CREATE, ALTER, DROP 문 등이 있음
-- DDL : 데이터 정의어 : 스키마 정의
CREATE TABLE Book (
bookid NUMBER(2) PRIMARY KEY, -- PRIMARY KEY는 반드시 테이블에서 하나 이상, 중복 불가
bookname VARCHAR2(40), -- VARCHAR2(오라클에서 인코딩 문제 때문에 VARCHAR2로 업그레이드, VARCHAR2 사용 권장)
publisher VARCHAR2(40),
price NUMBER(8)
);
CREATE TABLE Customer (
custid NUMBER(2) PRIMARY KEY,
name VARCHAR2(40),
address VARCHAR2(50),
phone VARCHAR2(20)
);
CREATE TABLE Orders (
orderid NUMBER(2) PRIMARY KEY,
custid NUMBER(2) REFERENCES Customer(custid), -- REFERENCES는 참조(외래키, 참조키와 관련)
bookid NUMBER(2) REFERENCES Book(bookid),
saleprice NUMBER(8) ,
orderdate DATE --일반 varchar 타입이 아니라, 날짜 정보는 varchar2 쓰지말고 date로 갈 것, date는 더하기 빼기 가능
);
데이터 조작어(DML)
테이블에 데이터를 검색, 삽입, 수정, 삭제하는 데 사용하며 SELECT, INSERT, DELETE, UPDATE 문 등이 있음. 여기서 SELECT 문은 특별히 질의어(query)라고 함
-- INSERT문 예시
INSERT INTO Book VALUES(1, '축구의 역사', '굿스포츠', 7000);
INSERT INTO Book VALUES(2, '축구아는 여자', '나무수', 13000);
INSERT INTO Book VALUES(3, '축구의 이해', '대한미디어', 22000);
INSERT INTO Book VALUES(4, '골프 바이블', '대한미디어', 35000);
INSERT INTO Book VALUES(5, '피겨 교본', '굿스포츠', 8000);
INSERT INTO Book VALUES(6, '역도 단계별기술', '굿스포츠', 6000);
INSERT INTO Book VALUES(7, '야구의 추억', '이상미디어', 20000);
INSERT INTO Book VALUES(8, '야구를 부탁해', '이상미디어', 13000);
INSERT INTO Book VALUES(9, '올림픽 이야기', '삼성당', 7500);
INSERT INTO Book VALUES(10, 'Olympic Champions', 'Pearson', 13000);
데이터 제어어(DCL)
데이터의 사용 권한을 관리하는 데 사용하며 GRANT, REVOKE 문 등이 있음
'데이터 엔지니어링 > 데이터베이스 및 운영체제' 카테고리의 다른 글
SQL 서브쿼리(부속질의) (1) | 2023.03.22 |
---|---|
SQL_기초(JOIN) (0) | 2023.03.22 |
SQL 기초_SELECT문 (0) | 2023.03.22 |
데이터베이스(ORACLE) 기초_2 (0) | 2023.03.22 |
데이터베이스(ORACLE) 기초_1 (0) | 2023.03.21 |