1 파이썬기반SQL프로그래밍
1. DBMS와 데이터모델링
1.1. 데이터베이스 (DataBase)
데이터베이스(DB) : 하드웨어에 저장된 데이터의 집합 자체를 의미한다. 서류들이 가득 차 있는 ‘서류함’과 같다
1.2. 데이터베이스 관리 시스템 (DataBase Management System)
데이터베이스 관리 시스템(DBMS): 저장된 데이터베이스를 관리해 주는 소프트웨어이다. 서류함에서 원하는 서류를 찾고, 정리하고, 보호하는 ‘관리인’ 역할을 한다.
- DB: 데이터를 보관하는 저장소
- DBMS: 저장소를 관리하는 소프트웨어
1.3. 데이터베이스 종류 (데이터 모델 기준)
데이터가 어떤 구조로 연결되고 저장되는지에 따른 분류입니다.
| 종류 | 특징 | 비고 |
|---|---|---|
| 계층형 (Hierarchical) | 데이터가 나무 뿌리처럼 상하 관계로 연결됨 | 1960년대 최초 출시(IMS 등) |
| 네트워크형 (Network) | 데이터 간의 관계를 그물 형태로 연결함 | 계층형의 단점을 보완하기 위해 개발됨 |
| 관계형 (Relational) | 데이터를 표(Table) 형태로 관리함 | 현재 가장 널리 쓰이는 표준 모델 |
| 객체형 (Object-oriented) | 정보를 객체 단위로 저장함 | 프로그래밍의 객체 지향 개념을 도입함 |
1.4. 주요 DBMS 종류 (소프트웨어 제품 기준)
현재 시장에서 활발히 사용되는 구체적인 소프트웨어들입니다.
| 제품명 | 데이터 모델 | 주요 특징 |
|---|---|---|
| Oracle | 관계형(Relational) | 강력한 보안과 성능, 대규모 시스템용 |
| MySQL / MariaDB | 관계형(Relational) | 오픈 소스, 웹 서비스 개발에 대중적임 |
| PostgreSQL | 관계형(Relational) | 신뢰성과 확장성이 뛰어난 오픈 소스 |
| SQLite | 관계형(Relational) | 가벼운 파일 기반, 파이썬 내장 라이브러리 |
| MongoDB | 문서형(Document) | 비정형 데이터 처리에 적합한 NoSQL |
| Redis | 키-값(Key-value) | 속도가 매우 빠른 인메모리 저장소 |
| Elasticsearch | 검색 엔진 | 대량의 텍스트 검색 및 분석에 특화됨 |
1.5. 데이터모델링 3단계
Label데이터베이스는 정보를 담는 **구조(모델)**를 먼저 결정하고, 그 구조를 실질적으로 관리할 **도구(DBMS 제품)**를 선택하여 사용하게 됩니다. 실습에서 사용할 **에스큐엘라이트(SQLite)**는 관계형 모델을 따르면서도 별도의 서버가 필요 없는 매우 가벼운 도구입니다.