전공과목 정리/IT개론

[IT개론🗃️] 데이터베이스

최연재 2022. 6. 22. 10:00

출처 : 소프트웨어 세상을 여는 컴퓨터 과학

 

1. 데이터베이스의 개요

1) 데이터베이스의 개념

(1) 파일 시스템

- 각각의 응용 프로그램이 개별 파일을 이용하는 시스템

- 중복된 정보가 많고, 이 중 하나가 수정되면 관련된 모든 파일이 모두 수정되어야 한다. 

- 이러한 문제를 해결하기 위해 데이테베이스 사용

 

(2) 데이터베이스(DB ; DataBase)

- 어느 한 조직이 여러 응용 프로그램이 공유하는 관련 데이터의 모임

 

2) 데이터베이스 관리 시스템

(1) 데이터베이스 관리 시스템 (DBMS ; DataBase Management System)

- 여러 응용 프로그램이 데이터베이스를 공유하며 사용할 수 있는 환경을 제공하는 소프트웨어

- 응용 프로그램은 데이터베이스를 직접 조작하지 않음

 

(2) 데이터베이스 관리 시스템의 역할

- 데이터베이스를 구축하는 툴 제공

- 데이터를 효율적으로 검색하고 저장할 수 있도록 함. 

- 각 응용프로그램이 데이터베이스에 접근할 수 있도록 사용 환경(인터페이스) 제공

- 권한이 없는 사용자가 접근하거나 시스템에 장애가 생겼을 때 데이터를 안전하게 보호한다. 

 

(3) DBMS 제품

- 마이크로소프트사의 MS-SQL Server, 오라클사의 오라클,오픈 소스인 MySQL

- 제품 선정 시에는 데이터베이스의 규모와 구축 비용등 기술적 요소와 경제적 요소를 고려해야 함. 

 

3) 데이터 모델

(1) 데이터 모델

- 데이터베이스를 구축할 때 필요한 체계화된 구조를 명시하기 위한 개념

- 데이터베이스의 구조뿐만 아니라 허용되는 연산도 포함

- 종류

계층형 데이터 모델, 네트워크형 데이터 모델, 관계형 데이터 모델, 객체지향형 데이터 모델

 


2. 관계형 데이터베이스

1) 관계형 데이터베이스

(1) 관계형 데이터베이스(relational data model)

- 테이블 형식으로 데이터를 정의하고 설명한 모델

- 용어

  • 속성(attribute) : 각 열에 부여된 이름
  • 도메인(domain) : 속성에 입력한 값의 범위
  • 차수(degree) : 속성의 수
  • 튜플(tuple) : 각 행
  • 릴레이션(relation) : 테이블을 지칭, 튜플이나 속성은 중복될 수 없음
  • 후보키(candidate key) : 튜플을 구분할 수 있는 최소한의 속성만으로 구성된 키
  • 기본키(primary key) : 후보키가 두 개 이상인 경우 그 중 하나로 선택된 키

√ 유일성 : 하나의 키값으로 하나의 튜플만을 유일하게 식별가능해야 한다. 

√ 최소성 : 유일하게 식별하는데 꼭 필요한 속성만으로 구성되어야 한다. 

 

2) 관계형 데이터 연산

(1) 선택(select) 연산 : 하나의 릴레이션에서 주어진 조건을 만족하는 튜플을 검색하는 연산

 

(2) 추출(project) 연산 : 하나의 릴레이션에서 원하는 속성만 선택하는 연산

 

(3) 합집합 연산 : 두 릴레이션에서 어느 한쪽에 있거나 양쪽에 있는 모든 튜플을 찾는 연산

 

(4) 교집합 연산 : 두 릴레이션에 공통적으로 포함된 튜플을 찾는 연산

 

(5) 차집합 연산 : 한 릴레이션에는 있지만 다음 한 릴레이션에는 없는 튜플을 찾는 연산

 

(6) 카디션 곱 : 두 릴레이션의 튜플 간 모든 조합을 취하는 연산

 

(7) 조인(join) 연산 : 두 릴레이션에서 특정 조건을 만족하는 튜플들을 결합해 하나의 튜플로 만드는 연산

 


 

3. SQL

1) SQL

(1) SQL(Structured Query Language)

- 데이터베이스를 구축하고 활용하기 위해 사용하는 언어

- 데이터 정의어(DDL ; Data Definition Language)와 데이터 조작어(DML ; Data Manipulation Language)로 나뉜다. 

  • 데이터 정의어 : '릴레이션'을 생성, 삭제, 변경할 때 사용
  • 데이터 조작어 : 릴레이션에서 원하는 '데이터'를 검색, 삽입, 삭제, 갱신할 때 사용

 

2) 릴레이션 생성 :CREATE TABLE 문

- 릴레이션을 생성하는 명령문

CREATE TABLE 릴레이션이름

{ 속성1 자료형1

속성2 자료형2

속성n 자료형n

};

 

 - 자료형

자료형 설명
CHAR(n) 길이가 n인 고정 길이 문자열
VARCHAR(n) 길이가 n인 가변 길이 문자열
INT 정수형
FLOAT(n) n개의 자릿수를 갖는 부동소수점형
DATE 날짜형
TIME 시간형

 

3) 릴레이션 삭제 : DROP TABLE 문

- 릴레이션을 삭제할 때 사용하는 명령문

DROP TABLE 릴레이션 이름;

 

4) 릴레이션 변경 : ALTER TABLE 문

- 기존 릴레이션에서 속성을 추가, 삭제, 변경하는 명령문

ALTER TABLE 릴레이션 이름

ADD 속성이름 자료형;

DROP 속성이름;

 

5) 검색 : SELECT 문

- 릴레이션에서 원하는 데이터를 검색할 때 사용하는 명령문

SELECT 속성리스트

FROM 릴레이션리스트

WHERE 조건;

- FROM 절에 릴레이션의 이름을 나열하면 카티션 곱이 먼저 수행됨. 

 

6) 삽입 : INSERT 문

- 릴레이션에 튜플을 삽입하는 명령문

INSERT INTO 릴레이션이름

VALUES(값1, 값2, 값3, ... ,값n);

 

7) 삭제 : DELETE 문

- 튜플을 삭제하는 명령문

DELETE FROM 릴레이션이름

WHERE 조건;

 

8) 갱신 : UPDATE 문

- 튜플의 속성값을 갱신할 때 사용하는 명령문

UPDATE 릴레이션이름

SET 속성1=수식1, 속성2=수식2, 속성3=수식3, ... 속성n = 수식n

WHERE 조건;