데이터베이스(database)란?
- An organized collection of structured information, or data, typically stored electronically in a computer system
데이터베이스 언어
- DDL(Data Definition Language)
- DML(Data Manupulation Language)
- select, insert, delete, update
- DCL(Data Control Language)
- grant, revoke, commit, rollback
DBMS(DataBase Management System)이란?
-
데이터베이스를 관리하며 응용 프로그램들이 데이터베이스를 공유하며 사용할 수 있는 환경을 제공하는 소프트웨어
-
계층형, 네트워크형,관계형, NoSQL 데이터 베이스가 있다.
처리 시스템 종류
일괄처리 시스템
• 일정시간이나 일정양의 데이터를 모아 한꺼번에 처리하는 시스템
• 시스템 중심의 자료 처리 방법
• 테이프와 같은 순차 접근 방법을 사용하는 업무에 적합
예) 급여 계산, 회계 마감업무, 세무 처리
분산처리 시스템
• 분산되어 있는 여러 컴퓨터를 연결하여 논리적으로 하나의 시스템으로
만들어 데이터를 처리하는 시스템
• 분산 처리기, 분산 데이터베이스 필요
• 시스템 구축이 어려운 반면 효용성과 융통성이 높고 시스템 확장이 용이
온라인처리 시스템
- 자료의 생성자로부터 입력된 내용이 곧바로 텀퓨터에 전송되어 처리되는 시스템
ex) 항공 예약 업무, 네트워크 게임
관계형 데이터베이스(RDBMS)
- DBMS의 한 종류로써 행,열로 구성된 Table들로 이루어진 데이터를 말한다.
- Oracle, MySQL, MS-SQL, MaricDB

스키마(Schema)
- 데이터베이스가 어떻게 구성되어 있는지를 표현해주는 설계도.
- 데이터베이스를 구성하는 데이터 개체, 속성, 관계 및 데이터 조작 시 데이터 값들이 가지는 제약조건 등에 관해 정의한 것.


스키마의 3계층
- 외부 스키마(External Schema) = 서브 스키마 = 사용자 뷰(View)
-
사용자나 응용 프로그래머의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것(사용자의 관점에 따라 해당하는 스키마는 달라질 수 있다.)
-
하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수 있으며, 하나의 외부 스키마를 여러 개의 응용 프로그램이나 사용자가 공용할 수 있다.
-
일반 사용자는 질의어(SQL)를 사용하여 데이터베이스를 사용한다.
- 개념 스키마(Conceptual Schema) = 전체적인 뷰(View)
-
데이터베이스의 전체적인 논리적 구조로서, 모든 이용자가 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스로 하나만 존재
-
개념 스키마는 개체 간의 관계와 제약조건, 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 나타낸다.
- 내부 스키마(Internal Schema)
- 물리적 저장장치의 입장에서 본 데이터베이스 구조.(물리적인 저장장치와 밀접한 계층)
- 실제로 데이터베이스에 저장될 레코드의 물리적인 구조, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.
- 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.
키(Key)
- An attribute or a set of attributes that help to uniquely identify a tuple (or row) in a relation (or table)

키(Key)의 특징
유일성(Unique)
- 하나의 키 값으로 하나의 튜플만을 식별하는 것
최소성(Minimality)
- 유일성을 만족시키는 최소한의 갯수로 구성되는 것
ex) 학번+이름, 주민번호+학번, 모두 유일성을 만족시킨다. 하지만 학번+이름에서 이름을 제외한 학번만을 가지고도 유일성을 만족시킬 수 있기 때문에(구분할 수 있기 때문에) 최소성에 유배된다고 할 수 있다.
1) 기본키(Primary Key)
- 유일성 + 최소성을 모두 만족
- Null값을 가질 수 없고 중복값을 가질 수 없음
- 한 테이블 내에서 하나의
2) 슈퍼키(Super Key)
- 유일성은 만족시키지만 최소성은 만족시키지 않는다
ex) 학번 + 주민번호
3) 후보키(Candidate Key)
- 유일성과 최소성 모두 만족
- 기본키가 될 수 있는 후보들
4) 외래키(Foreign Key)
- 기본키와 대응되어 릴레이션 간에 참조관계 표현
5) 대체키(Candidate Key)
- 후보키가 둘 이상인 경우 기본키로 선택되지 못한 후보들키의 집합

기본키: 학번
슈퍼키: 학번, 주민번호, 이름+나이, 학번+주민번호+이름, 학번+주민번호+이름+나이..etc
후보키: 학번, 주민번호
대체키: 주민번호

- 학생 Table에서 "학번"이 "기본키"이자 참조되는 "참조키"
- 수강 Table이 "학번"이 참조하는 키이자 "외래키"