1. 데이터베이스(Database)
1.1. 데이터와 정보
-
데이터(Data)
- 단순한 사실에 불과한 아직 처리되지 않은 값
-
정보(Information)
- 데이터가 사람에게 유용한 의미로 쓰일 수 있도록 처리된 결과
1.2. 데이터베이스의 정의와 특징
-
정의
- 서로 논리적으로 연관되어 통합 관리되는, 관련 있는 데이터의 저장소
-
특징
- 통합된 데이터(Integrated)
- 관련 있는 데이터(Related)
- 중복 최소화(Redundancy minimized)하여 보조기억장치에 저장
2. 데이터베이스 구조
2.1. 데이터베이스 구조
-
필드
- 특정한 종류의 데이터(이름, 학번 등)를 저장하는 가장 작은 논리적 단위
- (데이터 유형: 정수, 문자열 등)
-
레코드
- 여러 필드가 모여서 구성된 하나의 단위
- (예: 학생 1명의 전체 정보)
-
파일
- 여러 개의 레코드가 모여 파일이 된다.
-
데이터베이스
- 서로 관련 있는 파일들이 통합되어 데이터베이스를 구성한다.
2.2. 데이터베이스 추상화
- 데이터베이스를 보는 관점(View)을 3단계로 추상화하여 복잡성을 숨김.
- 물리적 단계 (내부 단계): 실제 데이터가 저장 장치에 어떻게 저장되는지(하드웨어, 바이트 구조) 다룸. (물리 스키마)
- 논리적 단계 (개념 단계): 어떤 데이터가 저장되고 그들 간의 관계는 무엇인지 기술. 전체적인 데이터 구조(논리 스키마).
- 뷰 단계 (외부 단계): 사용자와 직접 상호작용하는 최상위 단계. 사용자별로 필요한 부분만 보여줌. (서브 스키마)
2.3. 데이터 독립성
- 논리적 독립성: 응용 프로그램을 바꾸지 않고 논리 스키마를 변경할 수 있음.
- 물리적 독립성: 논리 스키마나 응용 프로그램을 바꾸지 않고 물리적 저장 구조를 변경할 수 있음.
3. 데이터베이스 모델
데이터의 논리적 설계와 관계를 표현하는 방식들이다.
-
계층적 모델(Hierarchical)
- 데이터가 트리(Tree) 형태
- 부모-자식 관계 (1:N)
-
네트워크 모델(Network)
- 레코드 간의 관계를 그래프(Graph) 형태로 연결
-
관계형 모델(Relational)
- 데이터를 행과 열로 구성된 이차원 테이블 집합으로 표현
- 현재 가장 널리 사용됨
4. 관계형 모델
4.1. 구조 및 용어
-
관계(Relation)
- 이차원 테이블
-
속성(Attribute)
- 테이블의 열(Column)
- 필드에 해당
-
튜플(Tuple)
- 테이블의 행(Row)
- 레코드에 해당
- (중복 불가, 원자값 가짐)
-
도메인(Domain)
- 하나의 속성이 가질 수 있는 값의 범위
4.2. 키
- 키(Key)
- 후보키: 튜플을 유일하게 식별할 수 있는 속성들의 집합 (유일성, 최소성)
- 주키(Primary Key): 후보키 중 튜플을 식별하기 위해 선택된 키
- 외래키(Foreign Key): 다른 테이블의 주키를 참조하여 관계를 맺는 키
4.3. 관계 연산
- 삽입(Insert): 새로운 튜플 추가
- 삭제(Delete): 특정 튜플 삭제
- 수정(Update): 속성 값 변경
- 조회(Select): 조건에 맞는 튜플이나 속성 검색
4.4. SQL
- SQL(Structured Query Language)
- 관계형 데이터베이스와 소통하기 위한 표준 언어
- 구성: DDL(정의), DML(조작), TCL(트랜잭션), DCL(제어)
5. 데이터베이스 관리시스템(DBMS)
5.1. 개요
- DBMS: 사용자가 데이터베이스를 생성, 관리, 활용할 수 있도록 해주는 중재자 소프트웨어
- 구성: 저장 관리자, 질의 처리기, 인터페이스 도구 등
5.2. 주요 DBMS 종류
- MySQL: 대표적인 오픈소스 DBMS
- Oracle: 기업용으로 가장 널리 사용되는 상용 DBMS
- SQL Server: 마이크로소프트사가 개발, 윈도우/인텔 서버 기반에서 널리 사용
5.3. 데이터베이스 연결
- ODBC(Open Database Connectivity)
- 종류에 상관없이 DBMS에 접근할 수 있도록 만든 표준 인터페이스
5.4. 임베디드 DBMS
- SQLite: 서버가 필요 없는 라이브러리 형태의 가벼운 SQL 데이터베이스 엔진
- 특징: C언어로 구현, 용량이 작고 빠름. 모바일(iOS, Android) 기기에 기본 탑재
- 실습:
sqlite3.exe(명령행 쉘)을 이용해 테이블 생성(create), 데이터 삽입(insert), 조회(select) 등의 SQL 실습 가능
6. 데이터 마이닝과 문서 데이터베이스
6.1. 데이터 마이닝
- 데이터 마이닝(Data Mining)
- 정의: 대규모 데이터 안에서 가치 있는 정보, 통계적 규칙, 패턴을 찾아내는 기법 (KDD)
- 기법: 연관 규칙(장바구니 분석), 연속성 규칙, 분류, 군집화 등
- 절차: 비즈니스 이해 → 데이터 수집 → 분석 → 모델링 → 결과 검토/평가
6.2. 문서 데이터베이스
-
NoSQL(Not Only SQL)
- 비관계형 데이터베이스
-
특징
- 이미지, 영상 등 비정형 대용량 데이터를 처리하기 용이
- 클라우드 환경에 적합
-
유형
- 문서(Document), 키-값(Key-Value), 그래프(Graph) 등
-
몽고DB(MongoDB)
- 가장 인기 있는 문서 지향 데이터베이스
- 데이터를 JSON(BSON) 형태로 저장
- 관계형 DB의 테이블/행/열 컬렉션/다큐먼트/필드로 대응