데이터베이스(Database)란?
: 특정 조직이 업무 수행에 필요한 관련성 있는 통합, 저장, 운영, 공유된 데이터 집합 (ISOS)
- 통합데이터(Integrated Data): 자료의 중복을 배제/최소화한 데이터 집합
- 저장데이터(Stored Data): 컴퓨터가 접근가능한 저장매체에 저장된 데이터 집합
- 운영데이터(Operational Data): 조직의 업무 수행에 반드시 필요한 데이터 집합
- 공유데이터(Shared Data): 여러 응용 시스템이 동시/공동으로 사용 가능한 데이터 집합
- 이는 중복된 데이터를 없애고, 자료를 구조화하여, 효율적인 처리를 할 수 있도록 관리되며, 데이터베이스는 DBMS(Database Management System)이 관리. (DBMS 종류 : 오라클, Mysql, MariaDB, 등등)
데이터베이스의 특징
-실시간 접근성(real Time Accessibility): 내가 원할 때마다 언제든 바로 접근해서 자료 처리
-계속적인 진화(Continuous Evolution): 삽입, 삭제, 갱신 --> 항상 최신의 데이터를 유지해야 함
-동시공유(Concurrent Sharing): 여러 명 같이 쓸 수 있어야 함
-내용에 의한 참조(Content Reference): 주소가 아닌 데이터의 내용, 즉 값에 따라 참조할 수.
DBMS (Database Management System)
: 사용자-데이터베이스 간 인터페이스 역할 (중간역할)
- 필수기능 : DB내용에 대한 정의기능(Definition Facility), 조작기능(Manipulation), 제어기능(Control)
- 장단점: 데이터 중복성 & 종속성 최소화; 일관성&무결성 유지; 사용자 간 데이터 공유 가능
SQL (Structured Query Language)
- 데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어
속성 |
설명 |
주요 명령어 |
DDL (Data Definision Language)
|
데이터베이스의 구조를 정의, 수정, 삭제 등 위해 사용되는 언어 |
CREATE, ALTER, DROP |
DML (Data Manipulation Language) |
데이터베이스 내의 자료를 검색, 삽입, 갱신, 삭제 위해 사용되는 언어 |
SELECT, DELETE, INSERT, UPDATE |
DCL (Data Control Language) |
데이터베이스 데이터의 대해 무결성 유지, 병행 수행 제어, 보호와 관리 |
COMMIT, ROLLBACK, GRANT, REVOKE |
관계형 데이터베이스(relational database)
- 테이블(=릴레이션)로 이루어져 있으며, 이 테이블은 키(key)와 값(value)의 관계를 나타냄
<< 특징 >>
- 데이터의 분류, 정렬, 탐색 속도가 빠름
- 데이터의 무결성 보장
- 기존에 작성된 스키마를 수정하기 어려움
- 아래는 테이블 예시며, 관계형 데이터베이스는 아래와 같이 구성된 테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체로 이해할 수 있음
1) 행(row): 관계된 데이터의 묶음 (= 튜플 또는 레코드)
2) 열(column): 각각의 유일한 이름, 자신만의 타입을 가짐 (= 속성 또는 필드)
3) 값(value): 각각의 행과 열에 대응하는 값
4) 키(key) : 행의 식별자로 이용되는 열을 기본키(primary)라고 함
즉, 테이블에 저장된 행을 고유하게 식별하는 후보키(candidate key) 중에서 설계자가 지정한 속성
5) 관계: 테이블 간의 관계는 관계를 맺는 테이블의 수에 따라 다음과 같이 나눌 수 있음
(일대일, 일대다, 다대다 -->>> 이러한 관계를 나타내기 위해 외래키(foreign key)를 사용. 외래키는 한 테이블의 키 중에서 다른 테이블의 행을 식별할 수 있는 키
6) 스키마
: 테이블을 디자인하기 위한 청사진.
- 스키마는 개체-관계 다이어그램(entity-relationship diagram)이나 문자열로 표현할 수 있음