본문 바로가기
Data Analysis/Data Engineering

IBM Data Engineer - Introduction to Relational Databases (RDBMS)

by Hagrid 2023. 4. 19.
반응형

 

Review of Data Fundamentals

  1. 데이터는 의미 있는 정보로 처리되는 사실, 관찰, 인식, 숫자, 문자, 이미지 등입니다.
  2. 데이터는 구조화, 반구조화, 비구조화로 분류됩니다.
  3. 다양한 데이터 소스에서 다양한 유형의 데이터를 얻을 수 있습니다 (예: 소셜 미디어에서 얻은 데이터는 비구조화 또는 반구조화일 수 있음).
  4. 데이터는 관계형 데이터베이스와 비관계형 데이터베이스 등 다양한 저장소에 저장할 수 있습니다.
  5. 데이터는 CSV, XML, JSON 파일로 전송할 수 있습니다.

Information and Data Models

  1. 정보 모델과 데이터 모델의 차이: 정보 모델은 개념 수준에서 추상적이며, 객체 간의 관계를 정의합니다. 반면 데이터 모델은 더 구체적인 수준에서 정의되며, 세부 사항을 포함합니다. 예를 들어, 도서관의 경우 정보 모델은 도서, 저자, 대출자 등의 개념적 관계를 정의하고, 데이터 모델은 이러한 개체를 데이터베이스 테이블로 표현하는 방법을 정의합니다.
  2. 관계형 모델의 장점: 관계형 모델은 데이터 독립성을 제공하기 때문에 데이터베이스에서 가장 많이 사용되는 데이터 모델입니다. 데이터는 테이블이라는 간단한 데이터 구조에 저장되어 논리적 데이터 독립성, 물리적 데이터 독립성 및 물리적 저장소 독립성을 제공합니다.
  3. 엔티티와 속성의 차이: 엔티티는 데이터베이스에서 독립적으로 존재하는 객체이며, 일반적으로 명사(사람, 장소, 물건)로 표현됩니다. 예를 들어, 도서와 저자가 엔티티입니다. 속성은 엔티티를 설명하는 데이터 요소로, 엔티티의 특성이나 성질을 나타냅니다. 예를 들어, 도서 엔티티의 속성에는 저자, 제목, 출판년도 등이 있습니다.

예시 : 

ER 다이어그램에서는 저자, 도서, 대출자 등의 엔티티와 그들 간의 관계가 표현되어 있습니다.
ER 다이어그램을 사용하여 데이터베이스 테이블을 설계할 수 있습니다.

예를 들어, 도서 엔티티는 데이터베이스에서 테이블이 되고, 속성(저자, 제목 등)은 테이블의 열이 됩니다. 저자 엔티티도 마찬가지로 데이터베이스의 테이블이 되며, 저자의 속성(성, 이름, 이메일 등)이 열이 되어 테이블을 구성합니다.

이 과정을 통해 도서관 데이터베이스의 다양한 엔티티와 속성이 식별되고 최종 ER 다이어그램이 작성됩니다. 각 엔티티는 데이터베이스의 테이블로 변환되며, 이를 바탕으로 데이터베이스가 구축됩니다.

ERDs & Types of Relationship

  1. 관계의 구성 요소: 관계의 구성 요소는 엔티티, 관계 세트, 그리고 크로우풋 표기법입니다. 엔티티 세트는 직사각형으로 표시되며, 관계 세트는 마름모와 관련된 엔티티를 연결하는 선으로 표시됩니다.
    1. 크로우풋 표기법은 관계를 나타내기 위한 기호로, 이 비디오에서는 '>', '<', '|' 등을 사용합니다.
      1. 도서(Book) 엔티티: 직사각형으로 표시되고, 속성(제목, 에디션, 연도 등)은 타원으로 표시됩니다.
      2. 저자(Author) 엔티티: 직사각형으로 표시되고, 속성(성, 이름, 이메일 등)은 타원으로 표시됩니다.
      3. 도서와 저자의 관계: 도서는 최소 한 명의 저자가 있어야 하며, 여러 명의 저자가 있을 수도 있습니다. 저자도 한 권의 책 또는 여러 권의 책을 쓸 수 있습니다.
  2. 일대일, 일대다, 다대다 관계:
    1. 일대일(one-to-one) 관계: 하나의 엔티티가 다른 엔티티의 단 하나의 인스턴스와 관련됩니다. 예를 들어, 한 권의 책이 딱 한 명의 저자가 있는 경우입니다.
    2. 일대다(one-to-many) 관계: 하나의 엔티티가 다른 엔티티의 하나 이상의 인스턴스와 관련됩니다. 예를 들어, 한 권의 책이 여러 명의 저자가 있는 경우입니다. 반대로 많은 저자들이 하나의 책을 쓰는 경우도 다대일(many-to-one) 관계로 볼 수 있습니다.
    3. 다대다(many-to-many) 관계: 하나의 엔티티의 여러 인스턴스가 다른 엔티티의 여러 인스턴스와 관련됩니다. 예를 들어, 여러 명의 저자가 여러 권의 다른 책을 쓰는 경우입니다.
  3. 예를 들어, 간단한 도서관 데이터베이스에서 도서, 저자, 도서 대출자와 같은 엔티티 간의 관계를 파악하려면 다음과 같은 과정을 거칩니다.
    1. 도서와 저자 사이의 관계: 일대다 관계를 사용하여 한 권의 책이 여러 명의 저자를 가질 수 있도록 표현합니다. 이 관계를 크로우풋 표기법으로 표시하면, 마름모 안에 'authored-by'라고 적고, 도서와 저자 엔티티 사이에 선을 그어 연결합니다. 이때 선에는 '<' 기호를 사용하여 일대다 관계임을 나타냅니다.
    2. 도서와 도서 대출자 사이의 관계: 다대다 관계를 사용하여 여러 권의 책이 여러 대출자에게 대출될 수 있도록 표현합니다. 마름모 안에 'loaned-to'라고 적고, 도서와 대출자 엔티티 사이에 선을 그어 연결합니다. 이때 선 양쪽에 '>'와 '<' 기호를 사용하여 다대다 관계임을 나타냅니다.

이렇게 각 엔티티 간의 관계를 분석하고 표현하는 것은 데이터베이스 설계에 있어 핵심적인 부분입니다. 올바른 관계를 정의하고 표현함으로써, 데이터베이스에서 데이터의 일관성과 무결성을 유지할 수 있고, 쿼리 성능을 최적화할 수 있습니다.

일대 다 관계

Mapping Entities to Tables

 

이 비디오에서는 ERD(Entity-Relationship Diagram)를 관계형 데이터베이스의 테이블로 변환하는 방법에 대해 설명합니다. ERD는 데이터베이스를 설계하는 데 기본적인 기반이 됩니다. 관계형 데이터베이스 설계에서는 ERD로 시작하여 나중에 ERD를 데이터베이스의 테이블에 매핑합니다.

예를 들어, 도서(Entity)의 ERD를 사용하여, 도서와 그에 따른 속성들이 테이블로 매핑되는 과정을 살펴보겠습니다. 도서(Entity)는 여러 개의 속성(Attribute)을 가지고 있으며, 이들이 테이블의 열(Column)로 변환됩니다. 이해를 돕기 위해, 도서(Entity)와 속성들을 분리합니다. 이 경우, 도서(Entity)는 도서라는 이름의 테이블이 됩니다.

관계형 데이터베이스 모델에서 테이블은 행(Row)과 열(Column)의 조합으로 표현됩니다. 매핑 과정에서 엔티티는 테이블이 되고, 속성들은 테이블의 열로 변환됩니다. 이렇게 해서 행과 열의 형태를 가진 테이블이 완성됩니다. 나중에 각 열에 데이터 값을 추가하여 테이블을 완성할 수 있습니다.

저자(Entity) 예시에서도 같은 과정이 이루어집니다. 저자(Entity)는 테이블이 되고, 속성들은 테이블의 열로 변환됩니다. 열에 데이터 값을 추가하면 테이블이 완성됩니다.

비디오에서 배운 내용을 요약하면 다음과 같습니다:

  • Entity-Relationship Diagrams (ERD)는 데이터베이스를 설계하는 기본 기반입니다.
  • ERD를 관계형 데이터베이스 테이블로 변환하는 방법:
    1. 엔티티는= = 테이블이 됩니다.
    2. 속성들은 == 테이블의 열이 됩니다.

 

Data Types

이 동영상에서는 데이터 유형의 개념과 데이터베이스에서의 사용 방법, 일반적인 데이터 유형들과 적절한 데이터 유형 사용의 장점에 대해 설명합니다. 데이터베이스 테이블은 하나의 엔티티를 나타내고 테이블의 열은 해당 엔티티의 속성을 나타냅니다. 각 열에 입력되는 정보는 항상 동일한 유형의 데이터여야 합니다. 이러한 개념을 사용하여 열에서 저장할 수 있는 데이터 유형을 정의할 수 있습니다.

데이터 유형은 열에서 저장할 수 있는 데이터를 제어하며, 다양한 데이터베이스 관리 시스템은 유사한 데이터 유형에 대해 다른 이름을 사용할 수 있지만 일반적으로 표준 집합을 지원합니다. 일반적으로 사용되는 RDBMS의 데이터 유형은 문자열 데이터 유형, 숫자 데이터 유형, 날짜/시간 데이터, 불린, 바이너리 문자열, 대형 객체 (LOB), XML 데이터 유형 등이 있습니다.

많은 관계형 데이터베이스는 내장된 데이터 유형에서 파생되거나 확장된 사용자 정의 데이터 유형(UDTs)을 만들 수 있도록 허용합니다. 적절한 데이터 유형을 사용하면 여러 가지 이점이 있습니다. 데이터 유형을 정의하면 열에 잘못된 데이터가 삽입되는 것을 방지할 수 있으며, 날짜/시간 및 숫자 데이터를 올바르게 입력하면 정확하게 정렬할 수 있습니다.

또한 올바르게 입력된 데이터로 범위를 정확하게 선택할 수 있으며, 입력된 데이터에 대해 숫자 계산을 수행할 수 있습니다. 또한 열의 평균 값을 반환하거나 주문 날짜에 2일을 더해 배송 날짜를 추정하는 등의 표준 기능을 활용할 수 있습니다.

이 동영상에서 배운 내용은 다음과 같습니다:

  1. 데이터 유형은 열에 저장할 수 있는 데이터의 유형을 정의합니다.
  2. 다양한 종류의 데이터를 위한 많은 다른 데이터 유형이 있습니다.
  3. 열에 대해 올바른 데이터 유형을 사용하면 많은 이점이 있습니다.

 


Creating Tables and Loading Data

Types of SQL statements (DDL vs. DML)

이 동영상은 SQL 문장의 종류에 대해 설명합니다. 동영상을 보면 데이터 정의 언어와 데이터 조작 언어 사이의 차이점을 구분할 수 있습니다. SQL 문장은 관계형 데이터베이스에서 엔티티(테이블), 속성(열) 및 튜플(데이터 값이 있는 행)과 상호 작용하는 데 사용됩니다. SQL 문장은 두 가지 범주로 나뉩니다: 데이터 정의 언어와 데이터 조작 언어.

데이터 정의 언어(DDL) 문장은 테이블과 같은 데이터베이스 객체를 정의, 변경 또는 삭제하는 데 사용됩니다. 일반적인 DDL 문장 유형에는 CREATE, ALTER, TRUNCATE, DROP이 포함됩니다.

  • CREATE: 테이블 생성 및 열 정의에 사용
  • ALTER: 열 추가 및 삭제, 데이터 유형 수정 등 테이블 변경에 사용
  • TRUNCATE: 테이블의 데이터를 삭제하되 테이블 자체는 삭제하지 않는 데 사용
  • DROP: 테이블 삭제에 사용

데이터 조작 언어(DML) 문장은 테이블의 데이터를 읽고 수정하는 데 사용됩니다. 이러한 작업은 CRUD(생성, 읽기, 업데이트, 삭제) 작업으로도 알려져 있습니다. 일반적인 DML 문장 유형에는 INSERT, SELECT, UPDATE, DELETE가 포함됩니다.

  • INSERT: 테이블에 하나 이상의 행 데이터 삽입에 사용
  • SELECT: 테이블에서 행을 읽거나 선택하는 데 사용
  • UPDATE: 테이블의 행을 수정하는 데 사용
  • DELETE: 테이블에서 행 데이터를 삭제하는 데 사용

Creating Tables

이 동영상에서는 테이블 생성에 대해 다음과 같은 내용을 다룹니다:

  • 테이블 생성 시 고려해야 할 사항 목록
  • Db2 on Cloud와 같은 그래픽 인터페이스에서 테이블 생성 방법 설명
  • 생성 후 테이블 구조 변경 방법 설명

테이블을 생성할 때 필요한 정보를 준비해야 합니다. 우선 테이블을 어디에 생성할지 결정해야 합니다. 많은 관계형 데이터베이스에는 데이터베이스 객체를 논리적 그룹으로 구성하는 스키마가 있습니다. 예를 들어, IBM Db2 on Cloud에서는 사용자의 스키마에 테이블, 뷰, 함수 등의 데이터베이스 객체를 저장합니다. 다음으로 테이블의 이름과 각 열의 이름 및 데이터 유형을 준비해야 합니다. 또한 열이 중복 값을 포함할 수 있는지, 열이 null 값을 허용할지 고려해야 합니다. 데이터베이스 설계 과정에서 만든 Entity Relationship Diagram을 참고하세요.

테이블을 생성하는 방법에는 여러 가지가 있습니다. 대부분의 데이터베이스에는 테이블을 생성하고 수정할 수 있는 시각적 또는 그래픽 인터페이스가 있습니다. 이러한 방식은 작은 규모의 작업에는 적합하지만 확장성이 떨어집니다. CREATE TABLE SQL 문장을 사용하여 테이블을 생성할 수도 있으며, 여러 테이블을 생성할 때 작성 프로세스를 자동화하려면 스크립트 파일에 포함할 수 있습니다. 마지막으로 일부 데이터베이스는 프로그래밍 방식으로 데이터베이스를 생성하고 관리하기 위한 관리 API를 제공합니다.

이 동영상에서 배운 내용은 다음과 같습니다:

  • 많은 관계형 데이터베이스 관리 시스템(RDBMS)에는 테이블, 뷰, 함수 및 기타 데이터베이스 객체가 포함된 스키마가 있습니다.
  • 대부분의 RDBMS는 테이블을 생성할 수 있는 GUI를 제공합니다.
  • SQL 문장을 사용하여 테이블을 생성할 수도 있습니다.

테이블이 생성된 후에 열을 추가하거나 데이터 유형을 변경하거나 기본 키 또는 외래 키를 추가해야 하는 경우 테이블 구조를 변경할 수 있습니다.

 

 

CREATE TABLE Statement

이 동영상에서는 CREATE TABLE 문에 대해 배우게 됩니다. 이 동영상을 마칠 때쯤에는, 엔티티 이름과 속성이 관계형 데이터베이스 테이블을 생성하는 데 어떻게 사용되는지 설명할 수 있을 것입니다.

가장 일반적인 DDL 문인 CREATE 문을 살펴보겠습니다. CREATE 테이블의 구문은 다음과 같습니다. "CREATE TABLE"로 시작하여 생성할 테이블 이름을 입력한 다음, 괄호 안에 나머지 문장을 입력합니다. 괄호 안의 각 행은 열 이름과 데이터 유형을 지정하며, 나중에 살펴볼 추가적인 선택적 값이 올 수 있습니다. 각 속성 또는 열 정의는 쉼표로 구분됩니다.

예를 들어, 캐나다의 지방을 위한 테이블을 생성하려면 다음과 같이 지정하십시오: CREATE TABLE provinces (id char(2) Primary key not null, name varchar(24)). 이 예에서 사용된 데이터 유형은 고정 길이의 문자열인 CHAR(2)와 가변 길이의 문자열인 VARCHAR(24)입니다. 이 가변 문자 필드는 최대 24자까지 저장할 수 있습니다. 이 문장을 실행하면 데이터베이스에 2개의 열이 있는 테이블이 생성됩니다. 첫 번째 열 id는 AB, BC 등의 지방 코드를 저장하고, 두 번째 열 name은 알버타, 브리티시 컬럼비아 등의 지방 이름을 저장합니다.

이제 라이브러리 데이터베이스를 기반으로 한 더 복잡한 예를 살펴보겠습니다.

이 데이터베이스에는 AUTHOR, BOOK, BORROWER 등 여러 엔티티가 포함되어 있습니다.
AUTHOR 엔티티를 위한 테이블 생성부터 시작해보겠습니다. 테이블 이름은 AUTHOR이고, AUTHOR_ID, FIRSTNAME, LASTNAME 등의 속성이 테이블의 열이 됩니다. 이 테이블에서는 Author_ID 속성을 기본 키로 할당하여 중복 값이 없도록 합니다. 관계형 테이블의 기본 키는 테이블의 각 튜플(행)을 고유하게 식별합니다.

Author 테이블을 생성하려면 다음 명령을 실행하십시오:

 

CREATE TABLE author ( author_id CHAR(2) PRIMARY KEY NOT NULL,
lastname VARCHAR(15) NOT NULL,
firstname VARCHAR(15) NOT NULL,
email VARCHAR(40), 
ity VARCHAR(15), 
country CHAR(2) )

 

Author_ID는 기본 키로,이 제약 조건은 테이블에 중복 값이 없도록 합니다. 또한 LastName과 FirstName에 NOT NULL 제약 조건이 있습니다. 이는 이러한 필드가 NULL 값을 포함할 수 없도록 하기 때문입니다. 작가는 반드시 이름을 가져야 하기 때문입니다.

 

ALTER, DROP, and Truncate tables

 

 

 

Data Movement Utilities

 

 

 

Loading Data

 

 

 

 

 

 
 
 
반응형

댓글