위로
아래
DBMS
DB (데이터베이스)
- 중복을 최소화하여 공용으로 사용할 수 있도록 저장해놓은 현재 사용 중인 데이터의 집합
- 저장되어 있는 데이터
- 공용 사용 가능 데이터
- 현재 사용 중 데이터
- 중복 최소화 데이터
DBMS (Database Management System)
- 데이터베이스 관리 시스템. 데이터베이스를 관리, 운영하는 시스템 또는 소프트웨어.
- 여러 명의 사용자나 응용프로그램이 공유하고 동시에 접근이 가능해야 한다.
- 오류가 있는 데이터가 데이터베이스에 들어오면 절대 안 된다!
- 데이터의 무결성 (Integrity) : 제약조건(Constrain)을 통해, 데이터베이스에 들어오는 데이터에는 오류가 없도록 한다.
- 데이터의 독립성 : 데이터베이스의 크기를 변경하거나 저장소를 변경해도, 기존에 작성된 응용 프로그램은 영향을 받지 않아야 한다.
- 보안 (Security) : 데이터베이스 안의 데이터에는 데이터에 접근이 허가된 사람만 접근할 수 있어야 한다.
- 데이터 중복의 최소화 : 데이터가 중복 저장되지 않아야 한다.
- 데이터 안전성 향상 : DBMS의 백업, 복원 기능을 통해, 문제 발생시 복원 방법이 명확해진다.
- 응용 프로그램 제작 및 수정의 용이성 : 공유하는 데이터베이스를 통해 통일된 방식으로 응용프로그램을 작성해서, 유지보수가 쉬워진다.
용어
관계형 데이터 모델 | 일반 | 파일 시스템 |
릴레이션 | 테이블 | 파일 |
튜플 | 행(로우) | 레코드 |
속성(어트리뷰트) | 열(컬럼) | 데이터 항목 또는 데이터 필드 |
(릴레이션) 차수 | 속성 개수 | |
카디넬리티 | 행(튜플) 개수 |
데이터베이스 구조
- 물리적 독립성
- 논리적 독립성
- 자료 독립성
SQL (Structured Query Language)
- DBMS를 구축하고 관리하고 활용하기 위해서 사용되는 언어
- DBMS마다 조금씩 문법이 다르다
- PL/SQL : 오라클의 SQL문법
스키마(schema)
- 테이블들을 그룹화 해 놓은 것.
- 여러 개가 있다.
- 데이터베이스라고 부르기도 한다.
데이터베이스 서버
- 여러 스키마(데이터베이스)들을 다루는 서버.
- mySQL, 오라클 등을 설치한 건, 이 데이터베이스 서버를 설치한 것이다.
종류
DBMS | 제작사 | 운영체제 | 비고 |
Oracle | Oracle | Unix, Linux, Windows | 유료 |
MySQL | Oracle | Unix, Linux, Windows, Mac | 오픈소스, 무료 |
SQL Server | Microsoft | Windows, Linux | |
MariaDB | MariaDB | Unix, Linux, Windows | 오픈소스, 무료 |
PostgreSQL | PostgreSQL | Unix, Linux, Windows, Mac | 오픈소스, 무료 |
DB2 | IBM | Unix, Linux, Windows | |
Access | Microsoft | Windows | PC 용 (흉내만 내는 놈) |
SQLite | SQLite | Android, iOS | 모바일 전용, 오픈소스, 무료 (파이썬 안에 들어 있다) |
CRUD
데이터베이스에서 가장 중요한 것은 데이터의 input과 output
- Create : 데이터 생성 (Insert)
- Read : 데이터 조회 (Select)
- Update : 데이터 수정 (Update)
- Delete : 데이터 삭제 (Delete)
DBMS의 분류 (RBDMS)
계층형 (Hierarchical DBMS)
- 최초의 DBMS 형태. 1960년대
- 각 계층은 트리 형태를 가지며 1:N의 관계.
- 처음 구축한 이후 구조를 변경하기가 까다롭다.
- 단점 : 정해진 상태에서의 검색은 빠르나, 접근의 유연성이 부족해 임의의 검색은 어렵다.
망형 (Network DBMS)
- 계층형 DBMS의 문제점을 개선하기 위해 등장. 1970년대
- 1:1, 1:N, N:M의 관계.
- 효과적이고 빠른 데이터 추출이 가능하다.
- 단점 : 복잡한 내부 포인터를 사용함에도, 프로그래머가 모든 구조를 이해해야 프로그램 작성이 가능하다.
RDBMS 관계형 (Relational DBMS)
- 가장 많이 사용되는 DBMS.
- Oracle, SQL Server, MySQL, DB2, Access 등
- 핵심 개념 : 데이터베이스의 최소 단위는 1개 이상의 열을 가진 테이블(table)
- 모든 데이터가 테이블에 저장된다.
- 한 개가 아닌, 여러 개의 테이블로 나눠서 저장함으로써, 공간 낭비를 줄이고 데이터 저장의 효율성을 보장.
- 부모테이블과 자식테이블의 관계는 기본 키(primary key)와 외래 키(foreign key)로 맺어져 있으며, 조합하고자 할 경우 SQL 언어의 조인(join)기능을 이용.
- 다른 DBMS에 비해 업무가 변화될 경우 수정이 쉽고, 유지보수도 편리하다.
- 대용량 데이터의 관리와 데이터 무결성을 잘 보장해준다.
- 단점 : 시스템 자원을 많이 차지해서 시스템이 전반적으로 느려진다.
그 외
- 객체지향형 (Object-Oriented DBMS)
- 객체관계형 (Object-Relational DBMS)