반응형

데이터베이스

  • 데이터베이스는 일반적으로 컴퓨터 시스템에 전자적으로 저장되는 구조화된 정보
    또는 데이터의 조직화된 모음이다.
  • 데이터베이스는 데이터베이스 관리 시스템(DBMS)에 의해 제어된다.
  • 데이터베이스는 다음의 4가지 특징을 갖는다.
    • 실시간 접근 (real-time accessibility)
    • 계속 변화 (continuous evolution)
    • 동시 공유 (concurrent sharing)
    • 내용으로 참조 (content reference)
  • 주로 사용되는 데이터베이스의 종류로 크게 2가지가 있다.
    • 관계형 데이터베이스
      • 행과 열로 구성된 테이블간의 관계를 나타내며, SQL을 통해 관리한다.
      • MySQL, Maria DB, MS-SQL 등이 있다.
    • NoSQL
      • 관계형 데이터 베이스의 한계를 극복하기 위한 데이터 저장소의 새로운 형태로, 수평적 확장성을 갖고 있다.
      • Mongo DB, Cassandra 등이 있다.

 

데이터

  • 데이터베이스의 가장 중요한 목적은 데이터를 모아두는 것이다.
  • 데이터는 형태에 따라 3가지로 분류할 수 있다.
    • 정형 데이터
      • 구조화된 데이터, 즉 미리 정해진 구조에 따라 저장된 데이터다.
      • 엑셀의 스프레드시트, 관계형 데이터베이스의 테이블
    • 반정형 데이터
      • 구조에 따라 저장된 데이터지만, 정형 데이터와 달리 데이터 내용 안에 구조에 대한 설명이 함께 존재
      • HTML, XML, JSON 등이 반정형 데이터에 속한다.
    • 비정형 데이터
      • 정해진 구조 없이 저장된 데이터다.
      • 소셜 데이터의 텍스트, 영상, 이미지, PDF와 같은 멀티미디어 데이터가 비정형 데이터에 속한다.

 

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

  • 데이터베이스 관리 시스템 등장 이전에 사용되던 파일 시스템의 데이터 중복데이터 종속 문제를 해결하기 위해 제시된 소프트웨어이다.
  • 응용 프로그램을 대신하여 데이터베이스에 들어 있는 데이터를 삽입, 삭제, 수정, 검색하고, 모든 응용 프로그램이 데이터베이스를 공유할 수 있게 한다.

 

SQL (Structured Query Language)

  • SQL은 데이터를 조작 및 제어하기 위해 거의 모든 관계형 데이터베이스에서 사용되는 프로그래밍 언어이다.

 

스키마 (Schema)

  • 스키마는 데이터베이스에 저장되는 데이터의 구조제약조건에 관해 전반적인 명세를 기술한 것이다.
    즉, DB내에 어떠한 구조로 데이터가 저장되는지를 나타내는 데이터베이스의 구조이다.
  • 데이터베이스의 복잡한 내부 구조를 감추고 일반 사용자가 데이터베이스를 쉽게 이해하고 이용할 수 있도록 하기 위해, 사용자의 관점에 따라 세 가지로 분류한다.
    1. 외부 스키마
      • 프로그래머나 사용자 입장에서 데이터베이스의 모습으로 조직의 일부분을 정의한 것
      • 전체 데이터베이스의 한 논리적인 부분이므로 서브 스키마 라고도 한다.
      • 하나의 데이터베이스 시스템에는 여러개의 외부 스키마가 존재할 수 있고, 하나의 외부 스키마를 여러개의 응용 프로그램이나 사용자가 공용할 수도 있다.
      • 일반 사용자는 질의어(SQL)을 통해, 응용 프로그래머는 C, JAVA등의 언어를 통해 접근한다.
    2. 개념 스키마
      • 모든 응용 시스템과 사용자들이 필요로하는 데이터를 통합한 조직 전체의 데이터베이스 구조를 논리적으로 정의한 것
      • 개념스키마는 개체간의 관계와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
      • 데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것으로, 단순히 스키마(Schema)라고 하면 개념 스키마를 의미한다.
    3. 내부 스키마
      • 전체 데이터베이스의 물리적 저장 형태를 기술하는 것으로, 물리적 저장장치의 관점에서 본 데이터베이스 구조이다.
      • 내부스키마는 실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현방법, 내부 레코드의 물리적 순서 등을 나타낸다.
      • 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.

 

릴레이션 (Relation)

  • 관계형 데이터 모델에서는 하나의 개체에 관한 데이터를 하나의 릴레이션에 담아 데이터베이스에 저장한다.
    즉, DB에서 릴레이션은 DB 테이블을 뜻한다.
  • 릴레이션과 관련된 용어들은 다음과 같다.
    • 속성 (attribute)
      • 릴레이션의 열을 속성이라고 부른다.
      • 각 속성은 서로 다른 이름을 이용해 구별한다.
      • 릴레이션은 파일 관리 시스템에서의 파일, 속성은 필드에 대응하는 개념이다.
    • 튜플 (tuple)
      • 릴레이션의 행을 튜플이라고 부른다.
      • 튜플은 파일 관리 시스템에서 해당 파일의 레코드에 대응하는 개념이다.
    • 도메인 (domain)
      • 릴레이션에 포함된 각각의 속성들이 가질 수 있는 원자값들의 집합이다.
      • 예를 들어 속성의 값으로 Red, Green, Blue, White 중 하나만 허용될 때, 이 4가지 값을 모아놓은 것이 속성의 도메인이 된다.
    • 차수 (degree)
      • 하나의 릴레이션에서 속성의 전체 개수를 릴레이션의 차수라고 한다.
      • 모든 릴레이션은 최소 1 이상의 차수를 유지해야 한다.
      • 릴레이션의 차수는 일반적으로 자주 변하지 않는다는 정적인 특징이 있다.
    • 카디널리티 (cardinality)
      • 하나의 릴레이션에서 튜플의 전체 개수를 릴레이션의 카디널리티 라고 한다.
      • 튜플이 없는 릴레이션이 존재할 수도 있다.
      • 릴레이션의 카디널리티는 일반적으로 자주 변한다는 동적인 특징이 있다.

 

마치며..

오늘은 이렇게 데이터베이스의 기본 용어들에 대해 알아보았습니다.

이외에 전체적인 CS주제들은 https://github.com/HongEunhohttps://github.com/MLifeFam/cs_interview 에 정리되어 있습니다.

반응형

+ Recent posts