관계형 데이터베이스 관리 개념 및 용어 정리
모델의 목적
- 의사소통
- 분류
- 설명
- 지정
- 조사
- 전개
- 분석
- 모방
ER 모델은 업무에 필요한 정보와 업무 내에서 수행되는 작업 구분
해당 작업을 변경할 수 있지만 정보 유형은 일관되게 유지됨
데이터 구조도 일관성 유지
관계
기호 | 설명 |
점선 | "maybe" (선택적 요소) |
실선 | "must be" (필수 요소) |
새 발 | "one or more" |
단일 행 | "one and only one" |
Primary Key 및 Foreign Key에 대한 지침
- PK에서 중복 값 사용 X
- PK는 일반적으로 변경 X
- FK는 데이터 값을 기반으로 논리적 포인터임
- FK 값은 PK 값이나 UK 값과 일치해야 함 그렇지 않을 경우 null
- FK는 PK 나 UK 열 참조
- 특정 사원에 필요한 모든 데이터를 나타내는 단일 행
행의 순서는 중요 X
테이블의 각 행은 중복 행을 허용하지 않는 PK로 식별
- 사원 번호를 포함하는 열 또는 속성
사원번호는 고유한 사원을 식별
- 키 값이 아닌 열
데이터를 저장할 때 열 순서는 중요 X
데이터를 검색할 때 열 순서 지정
테이블에 있는 일종의 데이터를 나타냄
- 부서 번호를 포함하는 열 FK임
FK는 테이블이 서로 연관되는 방식을 정의하는 열 - 필드는 행과 열의 교차점에서 찾을 수 있음
각 필드는 하나의 값만 가질 수 있음 - 필드에 값이 없을 수도 있음 - null 값
SQL 및 개발 환경
SQL에서 제공하는 명령문
- 데이터 query
- 테이블에서 행 삽입, 갱신 및 삭제
- 객체 생성, 대체, 변경 및 삭제
- 데이터베이스 및 해당 객체에 대한 액세스 제어
- 데이터베이스 일관성 및 무결성 보장
데이터 검색, 새 행 입력, 기존 행 변경, 행 삭제 | SELECT, INSERT, UPDATE, DELETE, MERGE |
데이터 구조 설정, 변경 및 제거 | CREATE, ALTER, DROP, RENAME, TRUNCATE |
데이터베이스와 그 안의 구조에 대한 권한 부여, 제거 | GRANT, REVOKE |
DML 문으로 변경한 내용 관리 | COMMIT, ROLLBACK, SAVEPOINT |
HR 스키마 및 테이블
💡 HR (Human Resources) 스키마는 오라클 예제 스키마 일부
모든 열 선택
특정 열 선택
SQL문 작성
- 대소문자 구분 X
- 한 줄 또는 여러 줄에 입력 가능
- 키워드는 약어로 표기 X, 여러 줄에 걸쳐 입력 X
- 절은 별도의 줄에 입력
- 가독성을 높이기 위해 들여쓰기 사용
- SQL Developer에서 SQl문은 선택적으로 세미콜론(;)으로 끝날 수 있음
- SQL*Plus에서는 각 SQL문이 반드시 세미콜론(;)으로 끝나야 함
산술식
연산자 | 설명 |
+ | 추가 |
- | 빼기 |
* | 곱하기 |
/ | 나누기 |
산술연산자 사용
연산자 우선 순위
💡 산술식에 둘 이상의 연산자가 포함된 경우 곱하기와 나누기가 먼저 계산됨
괄호 사용
💡 괄호를 사용하여 연산자 실행 순서를 원하는 대로 지정
우선 순위 규칙 재정의
Null값 정의
💡 null은 사용할 수 없거나, 할당되지 않았거나, 알 수 없거나, 적용할 수 없는 값
null은 0이나 공백과는 다름
산술식의 Null 값
💡 null 값을 포함하는 산술식은 null로 계산됨
열 alias 정의
💡 열 alias
- 열 머리글의 이름 변경
- 계산에서 유용
- 열 이름 바로 뒤에 나옴
- 열 이름과 alias 사이에 선택사항인 AS 키워드가 올 수도 있음
- 공백이나 특수 문자를 포함, 대소문자를 구분하는 경우 큰 따옴표 필요
연결연산자
- 열이나 문자열을 다른 열에 연결
- 두 개의 세로선 (||)으로 나타냄
- 결과 열로 문자식 생성
연결연산자와 null 값
💡 문자열에 null 값을 결합할 경우 결과는 문자열
리터럴 문자열
💡 리터럴은 SELECT 문에 포함된 문자, 숫자 또는 날짜
- 날짜 및 문자 리터럴 값은 작은 따옴표로 묶어야 함
- 각 문자열은 반환되는 각 행에 한 번 출력
대체 인용(q) 연산자
- 자신의 따옴표 구분자를 지정
- 구분자를 임의로 선택
- 가독성 및 사용성 증가
중복 행
💡 query 결과에는 중복 행을 포함한 모든 행이 표시됨
DISTINCT
💡 수식자 뒤에 여러 열을 지정할 수 있음
선택된 모든 열에 영향을 주며 결과에는 모든 고유한 열 조합이 나타남
테이블 구조 표시
- DESCRIBE 명령을 사용하여 테이블의 구조 표시
- Connections 트리에서 테이블을 선택하고 Columns 탭을 사용하여 테이블 구조 확인
DESCRIBE 명령 사용
데이터 유형 | 설명 |
NUMBER(p,s) | 최대 자릿수가 p이고 소수점 이하 자릿수가 s인 숫자 값 |
VARCHAR2 (s) | 최대 크기가 s인 가변 길이 문자 값 |
DATE | 1월 1일에서 12월 31일 사이의 날짜 및 시간 값 |