데이터베이스 실무 이론 정리
데이터베이스 (DB, DataBase)
- 관련된 데이터 모임, 조직체의 응용 시스템이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 모임
- 여러 가지로 구분된 데이터베이스 중 관계형 데이터베이스가 대표적임
- 관계형 데이터베이스는 행과 열로 이뤄진 표 형태의 2차원 데이터, 엑셀 시트와 유사한 형태를 가진다.
DBMS (Data Management System)
데이터베이스와 사용자를 연결해주는 역할을 하는 소프트웨어의 집합
스키마 (Schema)
데이터베이스의 구조(개체, 속성, 관계)와 제약조건에 대한 명세
-종류-
① 외부 스키마(External Schma, 서브스키마)
사용자 요구 사항을 도출하는 과정
데이터베이스 시스템 사용자의 관점에서 보고자 하는 정보의 집합
② 개념 스키마(Conceptual Schma, 논리 스키마)
사용자 관점 스키마인 외부 스키마를 분석해 데이터베이스에 저장해야 할 필요가 있는 정보들을 도출하 여 데이터베이스 구조로 설계한 것
데이터베이스 접근권한, 보안정책, 무결성 규칙을 명세화
③ 내부 스키마(Inrernal Schema, 물리 스키마)
논리 스키마를 컴퓨터 내부에 저장할 수 있는 물리적인 구조로 변환한 것
데이터베이스 관리자 (DBA, DataBase Administrator)
데이터베이스 시스템과 관련된 모든 자원들에 대한 기획/통제를 수행하는 사람 또는 조직
데이터베이스 시스템 (Database System)
데이터베이스 시스템 = 응용 프로그램들 + DBMS + Database
DB의 구성요소
개체(Entity) : 사람, 장소, 사물, 사건 등 독립적으로 존재하면서 고유하게 식별이 가능한 현실세계의 객체
ex) 학생, 교수, 학과, 과목, 수강 등
속성(Attribute) : 개체의 성질, 분류, 식별, 수향, 상태 등을 나타내는 세부 항목
ex) 학생 - 학번, 이름, 주민등록번호, 주소, 전화번호 등
관계(Relation) : 두 개 이상의 개체 사이에 존재하는 연관성
도메인(Domain) : 한 속성에 나타날 수 있는 값들의 범위(집합)
차수(Degree) : 속성들의 수
카디날리티(cardinality) : 튜플들의 수
인스턴스(instance) : 듀플들의 집합(릴레이션의 실제)
릴레이션 스키마 : 속성 이름들(릴레이션 틀, 구조)
키(Key)의 개념
데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성
① 슈퍼키(Super Key)
한 릴레이션 내에 있는 속성들이 집합으로 구성된 키
유일성은 만족하지만, 최소성은 만족하지 못한다.
② 후보키(Candidate Key)
튜플을 유일하게 구분할 수 있는 최소 슈퍼키 (하나의 속성으로 이뤄짐)
유일성과 최소성 모두 만조
③ 기본키(Primary Key)
후보키 중에서 특별히 선정된 키로 중복값을 가질 수 없고 후보키의 성질을 가진다.
튜플을 유일하게 식별하기 위해 반드시 필요한 키
④ 대체키(Alternate Key)
후보키-기본키=대체키
후보키가 둘 이상 되는 경우에 그 중에서 어느 하나를 선정하여 기본키로 지정하면, 나머지 후보키들은 대체키가 된다.
⑤ 외래키(Foregin Key)
다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
외래키는 참조 릴레이션의 기본키와 동일한 키 속성을 가진다.
SQL(Structured Query Language) : 표준 관계형 데이터베이스 언어
① DDL (Data Definition Language, 데이터 정의어)
물리적인 데이터베이스를 정의하고 관리하는 언어
CREATE(정의), DROP(삭제), ALTER(변경)
CREATE -> 정의, CREATE VIEW는 가상테이블을 의미한다.
DROP -> 테이블을 비롯 스키마, 도메인, 뷰, 인덱스 제거
CASCADE : 제거할 개체를 참조하늕 다른 모든 개체를 함꼐 제거(예시, 폭포)
ALTER > 테이블에 대한 정의 변경
② DML (Data Manipulation Language, 데이터 조작어)
생성된 데이터베이스에 데이터를 처리하는 언어
SELECT, INSERT(삽입), UPDATE(갱신), DELETE(열 삭제)
SELECT -> 검색
③ DCL (Data Control Language, 데이터 제어어)
데이터베이스 사용 권한 및 데이터의 무결성, 병행 수행 제어 기능 등을 관리하는 언어
GRANT(데이터베이스 사용자에게 권한부여), REVOKE(권한취소), COMMIT(작업영구반영),
ROLLBACK(비정상적으로 종료시 원래의 상태로 작업 복구)
C.R.U.D
CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능을 묶어 부르는 용어
- Create(생성), Read(읽기), Update(갱신), Delete(삭제)
- 사용자 인터페이스가 갖추어야 할 기능(정보의 참조/검색/갱신)을 가리키는 용어로서도 사용된다.
- 데이터베이스 SQL 중 데이터를 조작하는 DML 언어를 포함해 대응된다.
데이터베이스 종류
데이터베이스는 크게 관계형과 비관계형(NoSQL)로 구분한다.
- 관계형 데이터베이스(RDB) :
아직까지도 가장 많이 사용되는 데이터베이스, 행과 열로 표현되는 테이블 간 관계를 나타낼 때 사용, 표현된 데이터베이스는 SQL 언어를 사용해 접근 및 관리한다.
- 비관계형 데이터베이스(NoSQL DB) : Not Only SQL DB
RDB의 특성 뿐만 아니라 다른 특성까지도 지원하는 데이터베이스로서 대용량 데이터를 다루거나 데이터 분산 처리에 용이하다. 클라우드 컴퓨팅(Cloud Computing)에 적합하다.
다음은 관계형 데이터베이스와 비관계형 데이터베이스 종류다.
- 관계형 : 간단한 개발, 기본 데이터 조작과 빠른 탐색속도에 충실
- 비관계형 : 여러 특성을 지원하며 각 저장되는 데이터 구조에 따라 크게 4가지로 구분
비관계형 데이터베이스 데이터 모델 성능 비교 (출처: 위키피디아 wikipedia)
기타 데이터베이스 용어
무결성 : 데이터베이스에서 데이터의 정확성을 위해 데이터 값들이 일관성을 유지하여 유효한 값이 존재하도록 하는 것
JOIN : 두 개의 릴레이션 A와 B에서 공통된 속성을 연결하는 것이다.
정규화 : 잘못 설계된 관계형 스키마를 바람직한 스키마로 만들어 가는 과정
캡슐화 : 함수를 한 테두리로 묶는 것.
데이터 사전 : 혹 시스템 카탈로그, 데이터베이스에 사용되는 테이블, 인덱스, 뷰, 제약조건 등에 대한 정보와 관계를 저장한 것으로 그 자체가 하나의 작은 데이터 베이스이다.
NULL : 알려지지 않은 값, 아무 의미가 없거나 모르는 값으로 NULL Value라고도 부른다.
ODBC : 데이터베이스 표준 접속 규격
트랜잭션(Transaction)은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미