출처 : 소프트웨어 세상을 여는 컴퓨터 과학
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 조건;
'전공과목 정리 > IT개론' 카테고리의 다른 글
[IT개론🗃️] 네트워크와 인터넷 (1) | 2022.06.24 |
---|---|
[IT개론🗃️] 알고리즘 (2) | 2022.06.24 |
[IT개론🗃️] 자료구조 (2) | 2022.06.21 |
[IT개론🗃️] 프로그래밍 언어 (0) | 2022.06.21 |
[IT개론🗃️] 운영체제 (0) | 2022.06.21 |