Home [CS] DB: DB란 무엇인가?
포스트
취소

[CS] DB: DB란 무엇인가?

데이터베이스

데이터베이스란, 일정한 규칙 혹은 규약을 통해 구조화 되어 저장되는 데이터의 모음이다. 그런 데이터를 제어, 관리하는 통합 시스템을 DBMS(DataBase Management System)라고 하며, 데이터베이스 안에 있는 데이터들은 특정 DBMS마다 정의된 쿼리 언어를 통해 삽입, 삭제, 수정, 조회 등을 수행할 수 있다. 또, 데이터베이스는 실시간 접근과 동시 공유가 가능하다.

기초 용어

  • 엔티티 엔티티(Entity)는 사람, 장소, 물건 등 데이터베이스에서 관리 되는 여러 개의 속성을 지닌 명사를 의미한다. 예를 들어, 회원이라는 엔티티는 이름, 아이디, 주소, 전화번호 등의 속성이 있고, 이 중 서비스의 요구사항에 맞게 필요햔 것만 남고 나머지는 사라진다.

엔티티는 약한 엔티티와 강한 엔티티로 나뉜다. 엔티티 A가 혼자서는 존재하지 못하고 B의 존재 여부에 따라 종속적이라면, 엔티티 A는 약한 엔티티, B는 강한 엔티티가 된다.

  • 릴레이션 릴레이션(Relation)은 DB에서 정보를 구분해 저장하는 기본 단위이다. 엔티티에 관한 데이터를 릴레이션에 담아 관리한다. 관계형 데이터베이스에서는 이를 ‘테이블’이라고 하고, NoSQL 데이터베이스에서는 ‘컬렉션’이라고 한다.

  • 속성 속성(Attribute)은 릴레이션에서 관리하는 구체적이며 고유한 이름을 갖는 정보이다. 회원 정보에 이름, 아이디, 주소, 전화번호 등이 있다고 할 때, 만약 서비스 요구 사항에 주소가 없다면 주소는 속성으로 관리되지 않는 것이다.

  • 도메인 도메인(Domain)은 릴레이션에 포함된 각각의 속성들이 가질 수 있는 값의 집합을 말한다. 회원 정보에 성별이라는 속성 있다면, 이 성별은 [남, 여]라는 도메인을 가지는 것이다.

  • 스키마 스키마(Schema)는 관계형 데이터베이스에서 데이터의 구조와 제약 조건에 관한 전반적인 명세를 정의한 것이다. 엔티티가 어떤 속성을 가지고, 그 속성에는 어떤 데이터가 들어있는지에 대한 정의와 제약 조건을 서술해 놓은 것이다.

  • 관계 관계(Relationship)은 관계형 데이터베이스에서 두 개의 엔티티가 존재의 형태로서나 행위로서 서로에게 부여된 연관성을 말한다. 회원 정보를 저장한 엔티티와, 수업 정보를 저장한 엔티티가 있을 때, 회원이 특정 수업을 들어 수업의 ID를 저장한다면, 두 엔티티 사이 관계가 성립된 것이다.

엔티티

정의

엔티티는, 앞에서 말했듯 데이터베이스에서 관리 되는 여러 개의 속성을 지닌 명사를 의미한다. 엔티티는 일반적으로 다음과 같은 특징을 가지고 있다.

  • 엔티티가 사용되는 곳의 업무에서 필요하며 관리하고자 하는 정보이어야 한다.
  • 엔티티가 포함하는 인스턴스에 대해 유일한 식별자로 식별이 가능해야 한다.
  • 엔티티는 지속적으로 존재하는 두개 이상의 인스턴스들의 조합이어야 한다.
  • 엔티티는 반드시 속성을 지녀야 한다.
  • 엔티티는 업무 프로세스에 의해서 이용되어야 한다.
  • 엔티티는 다른 엔티티와 최소 한 개 이상의 관계가 있어야 한다.

분류

엔티티는 실체 유형(유무형)에 따라 구분하거나, 엔티티의 발생 시점에 의해 분류될 수 있다.

  • 실체 유형에 따른 분류

    • 유형 엔티티(Tangible Entity):

      물리적인 형태가 존재하는 엔티티이며 안정적이고 지속적으로 활용되는 엔티티이다.

    • 개념 엔티티(Conceptual Entity):

      물리적인 형태는 존재하지 않고 관리해야 할 개념적인 정보로 구분이 되는 엔티티이다.

    • 사건 엔티티(Event Entity):

      업무를 수행함에 따라 발생되는 엔티티이다.

  • 발생 시점에 따른 분류

    • 기본/키 엔티티(Fundamental/Key Entity):

      해당 업무에 원래 존재하는 정보로, 다른 엔티티와의 관계에 의해 발생 또는 생성되지 않고 독립적으로 존재하는 엔티티이다. 이는 독립적으로 생성이 가능하며 다른 엔티티의 부모역할을 한다.

    • 중심 엔티티(Main Entity):

      기본 엔티티로 부터 발생되며, 업무에 있어서 중심적인 역할을 한다. 일반적으로 데이터 양이 많으며 다른 엔티티와의 관계를 통해 행위 엔티티를 생성한다.

    • 행위 엔티티(Active Entity):

      두 개 이상의 부모 엔티티로 부터 주로 발생되고, 엔티티의 내용이 자주 바뀌거나 데이터 양이 증감한다.

속성

정의

속성은 엔티티가 가지는 구체적이며 고유한 이름을 갖는 정보이다. 속성도 엔티티와 같이 다음과 같은 성질을 지니며, 이런 성질을 지니지 못한 속성은 적절하지 못한 속성일 확률이 높다.

  • 엔티티와 마찬가지로 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.
  • 정규화 이론에 근간하여 정해진 주 식별자에 함수적 종속성을 가져야 한다. 쉽게 말해, 다양하게 존재하는 인스턴스들에 대해 유일하게 구별할 수 있는 주식별자를 통해서 식별될 수 있어야 한다는 것이다.
  • 하나의 속성은 단 한 개의 값만을 가진다.

분류

  • 속성의 특성에 따른 분류

    • 기본 속성(Basic Attribute):

      업무 분석을 통해 바로 정의한 속성을 기본속성이라고 한다. 엔터티에 있어서 가장 일반적이고 많은 속성을 차지한다. 하지만 코드성 데이터, 엔터티를 식별하기 위해 부여된 일련번호, 그리고 다른 속성을 계산하거나 영향을 받아 생성된 속성등은 기본속성이 아니다.

    • 설계 속성(Designed Attribute):

      업무상 필요한 데이터 이외에 데이터 모델링을 위해, 업무를 규칙화하기 위해 새로 만들어지거나 변형된 속성을 설계 속성이라고 한다. 일반적으로 코드성 속성은 기존의 속성을 업무상 필요에 의해 변형하여 만든 설계 속성이다. 또한 일련번호와 같은 속성 또한 단일한 식별자를 부여하기 위해 모델 상에서 새롭게 정의하는 설계속성이다.

    • 파생 속성(Derived Attribute):

      다른 속성에 영향을 받아 발생하는 속성은 파생 속성이다. 일반적으로 계산된 값들이 이에 해당된다. 파생 속성은 가급적 적게 정의하는 것이 좋다.

  • 엔티티 구성 방식에 따른 분류

    • PK(Primary Key) 속성:

      엔터티를 유일하게 구분할 수 있는 속성을 PK 속성이라고 한다.

    • FK(Foreign Key) 속성:

      다른 엔터티와의 관계에 있어서 포함된 속성을 FK 속성이라고 한다.

    • 일반 속성:

      엔터티에 포함되어 있고, PK 또는 FK에 포함되지 않는 속성을 일반 속성이라고 한다.

예상 질문

</details>


  • 데이터베이스는 무엇인가요?
답변 * 데이터베이스는 일정한 규칙, 혹은 규약을 통해 구조회되어 저장되는 데이터들의 모음입니다. * 이런 데이터들을 관리하는 통합 시스템을 DBMS 라 하고, 각각의 DBMS마다 정의된 쿼리 언어를 통해 삽입, 조회, 수정, 삭제 등을 수행할 수 있습니다.

참고 자료


이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

[CS] OS: CPU 스케줄링 알고리즘

[CS] DB: 키의 종류