[데이터베이스구축] 데이터베이스

thingzoo·2024년 2월 7일
0
post-thumbnail

데이터베이스(DB;Database)

특정 조직의 업무에 필요한 상호 관련된 데이터들의 집합

데이터베이스의 정의⭐️

  • 통합 데이터(Integrated Data): 중복 최소화
  • 저장 데이터(Stored Data): 저장매체에 저장
  • 운영 데이터(Operational Data): 업무에 필수적
  • 공용 데이터(Shared Data): 공동 소유 유지

데이터베이스의 특징

  • 실시간 접근성: 사용자의 질의에 즉시 응답
  • 계속적인 변화: 최신 및 정확한 데이터 유지
  • 동시 공유: 여러 사용자의 동시 데이터 접근 및 공유
  • 내용에 의한 참조: 주소가 아닌 내용으로 데이터 참조
  • 데이터의 독립성: 논리적 및 물리적 독립성

데이터베이스 생명주기

분석 → 설계 → 구현 → 운영 → 감시 및 개선

데이터 언어

  • DDL(Data Definition Language): 데이터베이스의 구조와 제약 조건 정의
  • DML(Data Manipulation Language): 데이터 처리 및 조작에 사용되는 언어
  • DCL(Data Control Language): 보안, 권한, 무결성 및 병행 제어를 위한 언어

스키마(Schema)

스키마의 정의

  • 데이터베이스의 구조, 제약조건, 속성, 개체, 관계를 포함한 전반적인 명세를 기술한 것
  • 개체(Entity)는 여러 속성(Attribute)의 집합, 개체들 사이에 관계(Relation) 존재
  • 스키마에 명세된 정보는 데이터 사전에 저장

3계층 스키마

외부 스키마(사용자 뷰)

  • 사용자나 응용프로그램 관점에서 데이터베이스의 논리적 구조를 정의
  • 하나의 데이터베이스에 여러 개의 외부 스키마 존재하여 공유 가능
  • 접근 시 SQL, C, JAVA 등 질의어나 프로그래밍 언어 사용

개념 스키마(전체적인 뷰)

  • 데이터베이스의 전체적인 논리적 구조, 전체 조직의 데이터 요구사항을 종합적으로 반영
  • 일반적으로 하나의 데이터베이스에 하나의 개념 스키마만 존재
  • 스키마는 주로 개념 스키마 의미
  • 데이터 접근 권한, 보안 정책, 무결성 규칙 등 명세 포함

내부 스키마(저장 스키마)

  • 물리적 저장장치 관점에서 데이터베이스의 구조를 정의
  • 실제로 데이터가 어떻게 저장장치에 배열되고 저장되는지, 레코드의 물리적 구조, 표현 방식, 순서 등 명세

DBMS(DataBase Management System)

데이터베이스를 효과적으로 관리하고 조작하기 위한 전용 소프트웨어

DBMS의 기능

  • 데이터 정의: 데이터 타입, 구조, 제약조건 등 설정 → DDL
  • 데이터 조작: 데이터 검색, 갱신 및 보고성 생성을 위한 질의 수행 → DML
    • 사용자와 데이터베이스 사이 인터페이스 수단 제공
  • 데이터 제어: 무결성, 보안, 권한, 병행 제어 → DCL
  • 데이터 공유: 여러 사용자나 응용 프로그램이 동시 데이터베이스 접근 가능
  • 데이터 보호: 불법적이거나 권한 없는 접근, 시스템 장애로부터 데이터 보호
  • 데이터 구축: 데이터를 DBMS가 관리하는 저장장치에 저장
  • 유지보수: 시간의 흐름에 따른 요구사항의 변화를 반영하여 데이터베이스를 수정하거나 업데이트

DBMS의 장단점

장점

  • 중복 최소화로 저장공간 낭비 방지
  • 데이터 독립성 보장
  • 동시 접근 및 공유 가능
  • 데이터 일관성/무결성 유지
  • 강화된 데이터 보안
  • 시스템 장애 복구 가능

단점

  • 고급 전문가 필요
  • 전산화 비용 증가
  • 대용량 디스크로의 집중적인 액세스로 과부하발생
  • 복잡한 백업 및 복구

DBMS의 종류

계층형(Hierachical Database)

  • 트리 구조로 데이터 간의 관계 표현, 세그먼트(레코드)단위로 데이터 관리
  • 간단한 구조로 구현/수정/검색 용이
  • 부모자식간 다대다 관계 처리 불가능, 구조 변경 어려움

네트워크형(Network Database)

  • 그래프 구조로 데이터 간 관계 표현, Owner-Member 관계를 가짐
  • 계층형 단점 보완, 데이터 간 다대다 관계 가능
  • 복잡한 구조로 유지보수 어려움
  • CODASYL이 제안해, CODASYL DBTG 라고도 함

관계형(Relational Database)

  • 키와 값으로 이뤄진 데이터들을 행과 열로 구성된 테이블 구조로 단순화시킨 모델
  • SQL를 사용해 데이터 처리

객체지향형(Object-Oriented Database)

  • 객체지향프로그래밍 개념에 기반해 만든 모델
  • 정보를 객체의 형태로 표현
  • 클래스, 상속 등 사용 가능
  • 비정형 데이터들을 데이터베이스화하기 위해 만듦

객체관계형(Object-Relational Database)

  • 관계형 데이터베이스에 객체지향개념 도입해 만든 모델
  • 객체지향 개념을 지원하는 표준 SQL 사용 가능
  • 관계형 데이터베이스보다 더 다양한 데이터타입

NoSQL

  • Not Only SQL, SQL뿐만 아니라 다양한 특성 지원
  • 데이터간 관계를 정의하지 않는 데이터베이스 모델로, 기존 RDBMS의 복잡도와 용량의 한계 극복 목적
  • 비정형 데이터처리에 유리
  • 스키마 변경 불가해 데이터값 문제 발생 시 감지 어려움

NewSQL

  • RDBMS와 NoSQL의 장점 결합한 모델
  • 확장성과 트랜잭션 동시 지원
profile
공부한 내용은 바로바로 기록하자!

0개의 댓글