체계적으로 정리된 데이터의 집합으로, 여러 사용자가 데이터를 효율적으로 저장, 검새, 수정, 삭제할 수 있도록 관리하는 시스템
일반적으로 데이터베이스는 데이터베이스 관리 시스템(DBMS)을 통해 데이터를 운영하며, 데이터의 무결성과 일관성을 유지하도록 설계됨
데이터 VS 정보
데이터: 가공되지 않은 원시 값
정보: 데이터를 가공하여 의미를 부여한 것
Database Management System
데이터베이스를 효과적으로 관리하기 위해 필요
데이터를 저장, 수정, 검색, 삭제하는 기능을 제공하는 소프트웨어
MySQL, 오라클 등
기능
언어 4종류
DML (데이터 조작어)
SELECT, INSERT, UPDATE, DELETE
데이터를 검색하고 추가, 수정, 삭제하는 명령어
자주 사용하는 SQL
DDL (데이터 정의어)
CREATE, ALTER, DROP
테이블, 인덱스 등을 생성하거나 수정할 때 사용
초기 DB 설계 시 많이 사용되며, 운영 중에는 가끔 사용됨
DCL (데이터 제어어)
GRANT, REVOKE
DB 관리자(DBA)가 보안 관리를 위해 사용
일반 개발자는 사용할 일이 거의 없음
TCL (트랜재션 제어어)
COMMIT, ROLLBACK, SAVEPOINT
여러 개의 데이터 변경 작업을 하나의 트랜잭션으로 묶을 때 사용
특히 금융, 쇼핑몰 결제 시스템 등에서는 필수
관계형 데이터베이스 관리 시스템(Relational DBMS)
데이터를 테이블 형태로 저장하고, 테이블 간의 관계를 이용하여 데이터를 관리하는 데이터베이스 시스템
SQL 사용 -> 데이터를 조회, 추가, 수정, 삭제
관계 기반 -> 테이블 간 연결을 통해 중복 최소화
MySQL, PostgreSQL, Oracle, SQL Server 등이 대표적
테이블의 관계는 일대일(1:1), 일대다(1:N), 다대일(N:1), 다대다(N:M)이 있다.
실제 DB를 만들기 전에 구조를 설계하는 과정으로, 3단곌 진행
1단계 - 개념적 모델링
: 무엇을 저장할지 정리하는 단계
데이터 구조를 간단한 개념으로 표현 >> 개체(Entity), 관계(Relationship)
ERD(Entity-Relationship diagram)가 많이 사용됨
2단계 - 논리적 모델링
: 개념적 모델링을 기반으로 릴레이션 스키마 형태로 구체화
테이블, 속성(컬럼), 관계(PK, FK) 설정
데이터 정규화 적용
3단계 - 물리적 모델링
논리적 모델을 실제 데이터베이스에 적용하는 단계
DBMS에 맞는 데이터 타입, 인덱스, 제약 조건 설정