😎 데이터베이스 기본 개념
데이터베이스의 필요성
- 데이터 VS 정보
- 데이터 : 현실 세계에서 단순히 관찰하거나 측정하여 수집한 값
- 정보 : 데이터를 의사 결정에 유용하게 활용할 수 있도록 처리하여 체계적으로 저직한 결과물
😊 데이터베이스의 정의와 특징
정의
특정 조직의 여러 사용자가 공유
하여 사용할 수 있도록 통합
해서 저장
한 운영
데이터의 집합
- 공유 : 여러 사용자가 함께 이용
- 통합 : 데이터 중복성을 허용하지 않는다.
- 저장 : 컴퓨터가 접근할 수 있는 매체에 저장
- 운영 : 지속적으로 운영
특징
- 실시간 접근 가능
- 계속 변화
- 동적인 특징이 있어 계속 CRUD하여 정확한 데이터를 유지
- 동시 공유 가능
- 같은 데이터를 동시에 사용하는 것도 지원, 다만 처리가 복잡
- 내용으로 참조 가능
- 주소나 위치가 아닌 데이터의 값으로 참조 가능
재고량이 1000개 이상인 제품을 조회
😊 데이터와 데이터베이스
정형 데이터
: 구조화된 데이터
반정형 데이터
: 구조에 따라 저장되었지만, 데이터 내용 안에 구조에 대한 설명도 함께 존재
- HTML, XML, JSON 등
- 파싱 과정 필요
비정형 데이터
: 소셜 데이터나 멀티미디어 데이터
데이터베이스 관리 시스템(RDBMS)
🎈 정의
: 파일 시스템의 데이터 중복과 데이터 종속 문제를 해결하기 위해 제시된 소프트웨어
🎈 사용자와 데이터베이스 사이에 존재하여 추상성, 독립성을 확보
🎈 주요 기능
: 정의, 조작, 제어
파일 시스템 단점
- 같은 내용의 데이터가 여러 파일에 중복 저장된다.
- 데이터 중복성 문제 발생, 저장 공간 낭비
- 데이터 일관성과 무결성을 유지하기 어렵다.
- 응용 프로그램이 데이터 파일에 종속적
- 파일에 직접 접근하여 데이터를 처리하려면 파일 구조에 맞게 작성된다. (데이터 종속성)
- 동시 공유, 보안, 회복 기능 부족
- 응용 프로그램 개발 어려움
데이터베이스 관리 시스템의 장점
- 데이터 중복 통제 가능
- 데이터 독립성 확보
- 동시 공유 가능, 보안 향상, 회복 가능
- 무결성 유지
- 표준화 가능
- 개발 비용이 줄어듦
데이터베이스 관리 시스템의 단점
- 높은 비용
- 복잡한 백업과 회복 방법
- 중앙 집중 관리로 인한 취약점 존재
데이터베이스 시스템
🎈 정의
: 데이터베이스에 데이터를 저장하고, 저장된 데이터를 관리하여 조직에 필요한 정보를 생성해주는 시스템
구조
🎈 스키마
: 데이터베이스에 저장되는 데이터 구조와 제약 조건을 정의한 것
3단계 데이터베이스 구조
🎈 외부 단계 : 사용자 관점
🎈 개념 단계 : 조직 전체 관점
🎈 내부 단계 : 물리적인 저장 장치 관점 개념 스키마는 데이터베이스당 하나만 존재하며, 전체 데이터베이스의 논리적 구조를 정의
🎈 내부 스키마는 전체 데이터베이스가 저장 장치에 실제로 저장되는 방법을 저장하며, 레코드의 구조, 필드의 크기, 인덱스 등을 나타낸다.
🎈 외부 스키마는 여러개 존재 가능하며, 각각의 사용자마다 그려지는 데이터베이스의 모습이 다르다.
데이터 독립성
위의 3단계 구조에서 스키마 사이에는 유기적인 대응 관계가 성립한다.
👻 데이터베이스를 3단계 구조로 나누고, 단계별로 스키마를 유지하며 스키마 사이의 대응 관계를 정의하는 궁극적인 목적은 데이터 독립성을 실현하기 위해서!!
데이터베이스 사용자
👻 데이터베이스 관리자
- 구성 요소 선정
- 스키마 정의
- 물리적 저장 구조와 접근 방법 결정 : 인덱스를 만들 기준 필드 등도 결정
- 무결성 유지를 위한 제약조건 정의
- 보안 및 접근 권한 정책 결정
- 백업 및 회복 기법 정의
- 시스템 데이터베이스 관리
- 시스템 성능 감시 및 성능 분석
- 데이터베이스 재구성
👻 최초 사용자
👻 응용 프로그래머
데이터 언어
- 데이터 정의어, DDL : Data Definition Language
- 스키마를 정의하거나, 수정 또는 삭제하기 위해 사용
- 데이터 조작어, DML : Data Manipulation Language
- 데이터의 CRUD 등의 처리를 요구하기 위해서 사용
- 데이터 제어어, DCL : Data Control Language
- 내부적으로 필요한 규칙이나 기법을 정의하기 위해서 사용
- 데이터 제어어를 이용해 규칙이나 기법을 정의하는 이유는 무결성, 보안, 회복, 동시성을 보장하기 위해서