데이터베이스 공부

Chooooo·2023년 11월 29일
0

데이터베이스

목록 보기
1/3

😎 데이터베이스 기본 개념

데이터베이스의 필요성

  • 데이터 VS 정보
  • 데이터 : 현실 세계에서 단순히 관찰하거나 측정하여 수집한 값
  • 정보 : 데이터를 의사 결정에 유용하게 활용할 수 있도록 처리하여 체계적으로 저직한 결과물

😊 데이터베이스의 정의와 특징

정의

특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 저장운영 데이터의 집합

  • 공유 : 여러 사용자가 함께 이용
  • 통합 : 데이터 중복성을 허용하지 않는다.
  • 저장 : 컴퓨터가 접근할 수 있는 매체에 저장
  • 운영 : 지속적으로 운영

특징

  1. 실시간 접근 가능
  2. 계속 변화
  • 동적인 특징이 있어 계속 CRUD하여 정확한 데이터를 유지
  1. 동시 공유 가능
  • 같은 데이터를 동시에 사용하는 것도 지원, 다만 처리가 복잡
  1. 내용으로 참조 가능
  • 주소나 위치가 아닌 데이터의 값으로 참조 가능
  • 재고량이 1000개 이상인 제품을 조회

😊 데이터와 데이터베이스

정형 데이터 : 구조화된 데이터
반정형 데이터 : 구조에 따라 저장되었지만, 데이터 내용 안에 구조에 대한 설명도 함께 존재

  • HTML, XML, JSON 등
  • 파싱 과정 필요
    비정형 데이터 : 소셜 데이터나 멀티미디어 데이터

데이터베이스 관리 시스템(RDBMS)

🎈 정의 : 파일 시스템의 데이터 중복과 데이터 종속 문제를 해결하기 위해 제시된 소프트웨어

🎈 사용자와 데이터베이스 사이에 존재하여 추상성, 독립성을 확보

🎈 주요 기능 : 정의, 조작, 제어

파일 시스템 단점

  1. 같은 내용의 데이터가 여러 파일에 중복 저장된다.
  • 데이터 중복성 문제 발생, 저장 공간 낭비
  • 데이터 일관성과 무결성을 유지하기 어렵다.
  1. 응용 프로그램이 데이터 파일에 종속적
  • 파일에 직접 접근하여 데이터를 처리하려면 파일 구조에 맞게 작성된다. (데이터 종속성)
  1. 동시 공유, 보안, 회복 기능 부족
  2. 응용 프로그램 개발 어려움

데이터베이스 관리 시스템의 장점

  1. 데이터 중복 통제 가능
  2. 데이터 독립성 확보
  3. 동시 공유 가능, 보안 향상, 회복 가능
  4. 무결성 유지
  5. 표준화 가능
  6. 개발 비용이 줄어듦

데이터베이스 관리 시스템의 단점

  1. 높은 비용
  2. 복잡한 백업과 회복 방법
  3. 중앙 집중 관리로 인한 취약점 존재

데이터베이스 시스템

🎈 정의 : 데이터베이스에 데이터를 저장하고, 저장된 데이터를 관리하여 조직에 필요한 정보를 생성해주는 시스템

구조

🎈 스키마 : 데이터베이스에 저장되는 데이터 구조와 제약 조건을 정의한 것

3단계 데이터베이스 구조

  • 각 단계별로 다른 추상화를 제공

🎈 외부 단계 : 사용자 관점
🎈 개념 단계 : 조직 전체 관점
🎈 내부 단계 : 물리적인 저장 장치 관점 개념 스키마는 데이터베이스당 하나만 존재하며, 전체 데이터베이스의 논리적 구조를 정의
🎈 내부 스키마는 전체 데이터베이스가 저장 장치에 실제로 저장되는 방법을 저장하며, 레코드의 구조, 필드의 크기, 인덱스 등을 나타낸다.
🎈 외부 스키마는 여러개 존재 가능하며, 각각의 사용자마다 그려지는 데이터베이스의 모습이 다르다.

데이터 독립성

위의 3단계 구조에서 스키마 사이에는 유기적인 대응 관계가 성립한다.

  • 이를 사상 또는 매핑이라 한다.

👻 데이터베이스를 3단계 구조로 나누고, 단계별로 스키마를 유지하며 스키마 사이의 대응 관계를 정의하는 궁극적인 목적은 데이터 독립성을 실현하기 위해서!!

데이터베이스 사용자

👻 데이터베이스 관리자

  • 구성 요소 선정
  • 스키마 정의
  • 물리적 저장 구조와 접근 방법 결정 : 인덱스를 만들 기준 필드 등도 결정
  • 무결성 유지를 위한 제약조건 정의
  • 보안 및 접근 권한 정책 결정
  • 백업 및 회복 기법 정의
  • 시스템 데이터베이스 관리
  • 시스템 성능 감시 및 성능 분석
  • 데이터베이스 재구성

👻 최초 사용자
👻 응용 프로그래머

데이터 언어

  • 데이터 정의어, DDL : Data Definition Language
    • 스키마를 정의하거나, 수정 또는 삭제하기 위해 사용
  • 데이터 조작어, DML : Data Manipulation Language
    • 데이터의 CRUD 등의 처리를 요구하기 위해서 사용
  • 데이터 제어어, DCL : Data Control Language
    • 내부적으로 필요한 규칙이나 기법을 정의하기 위해서 사용
    • 데이터 제어어를 이용해 규칙이나 기법을 정의하는 이유는 무결성, 보안, 회복, 동시성을 보장하기 위해서
profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글