[DB] 기초 정리

Hα ყҽσɳɠ·2020년 3월 4일
0

DataBase

목록 보기
1/8
post-thumbnail

데이터베이스의 베이직한 개념을 정리해보았다.
추후 내용 추가 예정ㅡ
이였는데 공태기가 와서 2주차 내용을 아직 정리못했지모야~~~!
얼릉 정리하자ㅏ아아악


데이터베이스 관리 시스템의 발전

데이터를 어떤 구조로 저장하느냐에 따라 발전을 살펴볼 수 있다.

  1. 계층형 모델

    • 하위 데이터들이 상위 데이터 하나를 갖는 모델로서 데이터의 관계를 트리 형태로 나타낸다. 이 구조는 단순하지만 관계를 1:n으로 제한하기 때에 표현할 수 없는 데이터들이 많아지고, 유연성이 떨어지는 단점이 있다.
  2. 네트워크형 모델

    • 데이터 구조가 복잡해지면서 계층형 데이터 모델로 표현하기 어려운 데이터 구조를 그래프 형태로 나타낸다. 데이터 간에 다양한 관계를 표현할 수 있지만, 복잡하고 변경이 어렵다는 단점이 있다. (서로 얽혀 있는 관계가 많기 때문에, 어떠한 데이터가 수정되거나 삭제 되었을 때, 나머지 관계들을 다시 표현하기 어렵다)
  3. 관계형 모델

    • 이차원의 표를 이용하여 데이터의 상호 관계를 표현하는 모델로 간단하고, 균등한 데이터 구조로 되어 있어 현재 가장 많이 사용된다. 사용자와 구매자 테이블 2개가 있을 때, 아이디 열을 이용하여 연속되는 데이터의 관계 구조를 나타낼 수 있다. (외래키, freigkey) 이것을 이용하면, 1:N, N:N도 가능해진다.
  4. 객체지향형 모델

    • 객체를 지향하는 개념과 데이터베이스 개념을 통합하여 실세계와 유사하게 데이터를 표현하는 데이터 모델이다. 멀티미디어 데이터의 확산으로 관계형 데이터 모델로 표현하기 어려운 구조를 표현하고자 설계되었다. 같은 구조와 행위를 갖는 개체는 한 클래스에 속하며, 클래스는 계층 또는 비순환 그래프로 그려지고, 클래스의 연산을 나타내기 위해 메소드 함수가 정의된다.
  5. 객체 관계형 모델

    • 관계형 모델 + 객체지향형 모델 (장점들만을 선별하여 관계형 모델에 통합한 새로운 개념의 데이터 모델)

데이터베이스 관리 시스템의 특징

  1. 데이터베이스 관리 시스템 구조

    1. 데이터베이스 스키마(Schema)
      • 구체적으로 데이터베이스의 구조와 제약조건을 기술한 것
      • 프로그램에서 변수를 선언해주는 것과 유사하다. (저장하고자 하는 공간에 대한 구조를 만들어주는 것)
    2. 데이터베이스 인스턴스
      • 특정 시점의 데이터베이스 내용으로, 지속적으로 변경 가능하다.
      • '시점'
  2. 데이터베이스 사용자

    1. 관리자(DBA) - 데이터베이스의 전체 환경 구성과 운영에 관련된 전반적인 책임자
    2. 설계자(Designer) - 데이터베이스의 요구 사항을 분석해서 데이터베이스의 개념적, 물리적 스키마의 설계를 책임진다. 조직의 특성에 따라 설계 내용이 달라지게 된다. (의류, 가전제품 판매등)
    3. 일반 사용자 - 보통 데이터베이스에 대한 질의 및 갱신 연산을 주로 하는 사용자 (SQL이용)
    4. 응용 프로그램 개발자
  3. 데이터베이스 언어

    데이터베이스를 정의하고 데이터베이스의 접근을 지원하는 통신 수단으로, SQL은 표준 질의어로 가장 많이 사용된다. 내부적으로 어떤 역할을 하는 질의 언어냐에 따라 다음과 같이 나뉜다.

    1. 데이터 정의어(DDL, Data Definition Language)
      • 관리자나 설계자가 데이터 간의 관계를 정의하거나 이미 정의된데이터베이스의 구조를 변경, 수정하는데 사용하는 언어이다. 구조를 만들어주는 것을 DDL이라고 한다.
    2. 데이터 조작어(DML, Data Manipulation Language)
      • 사용자가 응용 프로그램이나 질의어를 이용해서 저장된 실제 데이터를 검색, 수정, 삭제, 변경 등을 수행하는데 사용된다.
    3. 데이터 제어어(DCL, Data Control Language)
      • 관리자가 데이터를 관리하려고 데이터의 보안, 무결성, 데이터 복구, 병행 수행 제어등을 정의할 때나, 사용자의 권한을 설정할 때 사용되는 언어이다.

관계형 데이터베이스

데이터베이스를 만들고자 하는 사람들의 요구 사항을 인식하고, 개념적 설계(E-R 다이어그램)를 진행한 후, 논리적인 설계(table을 mapping)한다. 이후, 정규화(스키마 구조 변경, 최적화) 과정을 거친 후, 물리적인 설계(성능 개선)를 한 후, 구현을 한다.

  1. 관계형 데이터베이스의 이해
    1. 용어와 식별자 유형
      1. 관계(테이블 또는 릴레이션): 테이블이라는 이름으로 사용하며, 관계의 행(row)은 튜플, 열(column)은 attribute라고 하며, 실제 데이터의 값이 들어감.
      2. 튜플(record, row): 관계를 구성하는 각각의 행을 의미하며, attribute의 모임으로 구성된다.
      3. 애트리뷰트(attribute, column): 데이터베이스를 구성하는 가장 작은 논리적 단위이며, 개체의 특성을 기술한다.
      4. 도메인: 애트리뷰트가 취할 수 있는 같은 타입의 원자 값들의 집합을 의미한다. 실제 애트리뷰트 값이 나타날 때의 적절성을 시스템이 판단하는 데 이용한다. (ex. 이름이 들어가야 할 때, 영문, 한글로 미리 정의해놓는다, 데이터 타입을 지정하는 것과 비슷하다.)
profile
𝑯𝒐𝒏𝒆𝒔𝒕𝒚 𝑰𝒏𝒕𝒆𝒈𝒓𝒊𝒕𝒚 𝑬𝒙𝒄𝒆𝒍𝒍𝒆𝒏𝒄𝒆

0개의 댓글