메뉴 건너뛰기

(*.155.195.240) 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기
Extra Form
출처 https://inpa.tistory.com/entry/DB-%F0%9F...8%EB%9E%A8
목차
데이터 모델링 이란?
데이터 모델링 순서 절차
1. 업무 파악 (요구사항 수집 및 분석)
2. 개념적 데이터 모델링
3. 논리적 데이터 모델링
4. 물리적 데이터 모델링
데이터 모델링 절차 정리
ERD (Entity Relationship Diagram) 그리기
ERD 엔티티 표기법
엔티티(Entity)
엔티티 속성(Attribute)
엔티티 도메인(Domain)
엔티티 분류
ERD 키와 제약 조건 표기법
주 식별자 (PK)
NOT NULL
외래 식별자 (FK)
ERD 엔티티 관계 표기법
식별자 관계
비식별자 관계
ERD 관계의 카디널리티
One-to-One Cardinality (1:1 관계)
One-to-Many Cardinality (1:N 관계)
Many-to-Many Cardinality (M:N 관계)
Many-to-Many Cardinality 관계의 해소
ERD 관계의 참여도
관계의 선택 기호
관계의 필수 기호
ERD 엔티티 관계 표현 총정리
ERD 연습 예제 - 도서 관리 시스템
효율적인 모델링 작업하기
수정된 도서 관리 시스템 ERD
ERD 다이어그램 툴 추천
MySQL 워크벤치에서 ERD 만들기
온라인에서 ERD 만들기

데이터모델링이란?

데이터 모델링이란 정보시스템 구축의 대상이 되는 업무 내용을 분석하여 이해하고 약속된 표기법에 의해 표현하는걸 의미한다. 그리고 이렇게 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터 관리에 사용된다.

특히 데이터를 추상화한 데이터 모델은 데이터베이스의 골격을 이해하고 그 이해를 바탕으로 SQL문장을 기능과 성능적인 측면에서 효율적으로 작성할 수 있기 때문에, 데이터 모델링은 데이터베이스 설계의 핵심 과정이기도 하다. 


데이터 모델링

데이터 모델링 순서 절차

1. 업무 파악 (요구사항 수집 및 분석)

업무 파악은 어떠한 업무를 시작하기 전에 해당하는 업무에 대해서 파악하는 단계 이다. 

모델링에 앞서 가장 먼저 해야 할 것은 어떠한 업무를 데이터화하여 모델링 할 것 인지에 대한 요구사항 수집일 것이다. 업무파악을 하기 좋은 방법으로는 UI를 의뢰인과 함께 확인해 나아가는 는 것이다. 그리고 궁극적으로 만들어야 하는 것이 무엇인지 심도있게 알아보아야 한다.

이 포스팅에선 우리가 흔히 사용하는 게시판을 예를 들어보겠다.

게시판

 

2. 개념적 데이터 모델링

개념적 데이터 모델링은 내가 하고자 하는 일의 데이터 간의 관계를 구상하는 단계 이다. 각 개체들과 그들간의 관계를 발견하고 표현하기 위해 ERD 다이어그램을 생성한다.

다음은 피터 첸 표기법(Peter Chen Notation)으로 ERD 다이어그램을 구성한 그림이다. 그리는 방법은 어렵지 않다. 도형이 의미하는 바를 알고 화살표를 통해 관계를 표현하기만 하면 된다.

ERD-다이어그램-그리는법

업무 파악 단계에서 결정했던 게시판 데이터 구상을 개념적 데이터 모델링으로 구현해본 것이다. 게시판에는 대표적으로 게시판 이용자의 회원 정보, 로그인 정보 그리고 게시판의 게시글, 댓글이 있다.

ERD-다이어그램-그리는법

 

3. 논리적 데이터 모델링

개념적인 데이터 모델이 완성되면, 구체화된 업무 중심의 데이터 모델을 만들어 내는데, 이것을 논리적인 데이터 모델링이라고한다. 이 단계에서 업무에 대한 Key, 속성, 관계등을 표시하며, 정규화 활동을 수행한다. 정규화는 데이터 모델의 일관성을 확보하고 중복을 제거하여 신뢰성있는 데이터 구조를 얻는데 목적이 있다.

위에서 피터 첸 표기법으로 구현한 개념적 ERD 다이어그램을 정보 공학 표기법인 테이블 형태로 재 구성 한다.

이때 단순히 추상적인 데이터에서 보다 구체화적인 데이터로 작성한다. 예를 들어 회원정보의 아이디, 비밀번호에 각 데이터 타입을 명시해 주고 각 데이터간의 관계를 정밀하게 맺어주며 테이블의 키(key)를 지정해준다.

ERD-다이어그램-그리는법-논리적
​1대 다 관계를 1:* 로 표현했다.

 

4. 물리적 데이터 모델링

물리적 데이터 모델링은 최종적으로 데이터를 관리할 데이터 베이스를 선택하고, 선택한 데이터 베이스에 실제 테이블을 만드는 작업 을 말한다. 시각적인 구조를 만들었으면 그것을 실제로 SQL 코딩을 통해 완성하는 단계라고 보면 된다

물리적 데이터 모델링

/* 테이블 생성 */ -- 회원정보 create table member_tbl ( member_uid bigint primary key auto_increment, member_name varchar(45) unique not null, member_pwd varchar(45) not null, member_status boolean not null ); -- 로그인기록정보 create table login_info_tbl( member_name varchar(45) not null, info_ip varchar(45) not null, info_date datetime not null, constraint fk_member_name foreign key (member_name) references member_tbl (member_name) ); -- 게시판 create table board_tbl ( board_uid bigint primary key auto_increment, member_name varchar(45) not null, board_title varchar(45) not null, board_date datetime not null, board_hit int not null, board_post varchar(5000) not null, constraint fk_member_name foreign key(member_name) references member_tbl(member_name) ); -- 게시판 풀텍스트 인덱스 생성 create Fulltext index idx_title on board_tbl ( board_title ); create Fulltext index idx_post on board_tbl ( board_post ); -- show index from board_tbl ; -- 댓글 create table reply_tbl ( reply_uid bigint primary key auto_increment, board_uid bigint not null, member_name varchar(45) not null, reply_date datetime not null, reply_post varchar(1000) not null, foreign key(board_uid) references board_tbl(board_uid), foreign key(member_name) references member_tbl(member_name) ); -- 댓글 풀텍스트 인덱스 생성 create Fulltext index idx_reply on reply_tbl ( reply_post );

데이터 모델링 절차 정리

지금까지 알아보았던 절차를 간단하게 요약 정리하자면 다음과 같다.

  1. 네이버 게시판의 화면에 어떠한 것들이 필요한지에 대한 개념을 잡는게 업무파악 단계 (요구사항 수집 및 분석)
  2. 네이버 게시판의 화면에 표현되는 데이터들을 파악해서 관계를 설정하는게 개념적 데이터 모델링
  3. 개념적 데이터 모델링 한 것을 표로 만드는 게 논리적 데이터 모델링
  4. 이 일련의 과정을 수행한 것을, 실제 데이터베이스 테이블로 만드는 게 물리적 데이터 모델링

데이터 모델링 절차 정리


ERD (Entity Relationship Diagram) 그리기

ERD (Entity Relationship Diagram)는 단어에서 의미하는 그대로 'Entity 개체'와 'Relationship 관계'를

중점적으로 표시하는 데이터베이스 구조를 한 눈에 알아보기 위해 그려놓는 다이어그램이다.

ERD 엔티티 표기법

ERD

엔티티(Entity)

엔티티는 정의 가능한 사물 또는 개념을 의미한다.

사람도 될수 있으며 프로필이나 도서정보와 같은 무형의 정보도 데이터화가 가능하다.

데이터베이스의 테이블이 엔티티로 표현된다고 보면 된다.

예를들어 학생 Entity는 아래의 그림과 같이 표현된다.

Entity

엔티티 속성(Attribute)

엔티티에는 개체가 갖고있는 속성(Attribute)을 포함한다.

예를들어 학생 엔티티라면, 학번, 이름, 주소, 전공 ..등 속성들이 있다.

데이터베이스의 테이블의 각 필드(컬럼)들이 엔티티 속성이라고 보면 된다.

Attribute



  1. 데이터 모델링 개념 & ERD 다이어그램 작성

    목차 데이터 모델링 이란? 데이터 모델링 순서 절차 1. 업무 파악 (요구사항 수집 및 분석) 2. 개념적 데이터 모델링 3. 논리적 데이터 모델링 4. 물리적 데이터 모델링 데이터 모델링 절차 정리 ERD (Entity Relationship Diagram) 그리기 ERD 엔티티 표기법 ...
    Date2024.12.07 Reply0 Views408
    Read More
  2. No Image

    MariaDB, INFORMATION_SCHEMA INNODB_TRX 테이블

    INFORMATION_SCHEMA INNODB_TRX 테이블INNODB_TRX 테이블에 트랜잭션이 잠금을 대기하고 있는지 트랜잭션이 시작되었을 때 트랜잭션이 실행하는 SQL 문 (존재하는 경우) 등 InnoDB 내부에서 현재 실행중인 (읽기 전용 트랜잭션을 제외 ) 모든 트랜잭션에 대한 ...
    Date2024.11.26 Reply0 Views503
    Read More
  3. No Image

    MariaDB 용량조회

    mariadb를 운영하다보면 filesystem 경로에 데이터가 족족 쌓이는걸 확인할 수 있다. 오라클과 구조가 달라 테이블스페이스라는 개념이 없기때문이다. postgresql도 또한 filesystem에 족족 데이터가 쌓인다. db를 운영하는 입장에서는 filesystem의 용량도 봐...
    Date2024.11.17 Reply0 Views422
    Read More
  4. No Image

    Entity(엔터티)의 개념

    1. Entity 의 개념 Entity : 실체, 객체라는 의미로 실무적으론는 앤터티라고 부른다. 즉 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것으로 설명할 수 있다. 예) 학생이라는 엔터티는 학번, 이름, 학점, 등록일자, 생일, 전공 등의 속성...
    Date2024.11.07 Reply0 Views537
    Read More
  5. NCP - Cloud DB for MySQL

    MySQL 데이터베이스를 쉽고 간편하게 구축하고 관리Cloud DB for MySQL 상품을 통해 MySQL 데이터베이스를 손쉽게 구축하고 운영할 수 있습니다. Cloud DB는 네이버 서비스에서 검증된 최적화 설정을 통해 안정적으로 운영되며, 장애가 발생하면 자동으로 복구...
    Date2024.10.19 Reply0 Views530 file
    Read More
  6. NCP - MariaDB Enterprise Server

    MariaDB Enterprise Server는 엔터프라이즈 신뢰성, 안정성 및 장기적인 지원은 물론, 비즈니스 크리티컬 및 미션 크리티컬 애플리케이션을 위한 대용량 데이터베이스 구축을 관리해야 할 경우 더욱 뛰어난 운영 효율성을 제공합니다. MariaDB Enterprise Serv...
    Date2024.10.19 Reply0 Views589 file
    Read More
  7. MySQL, MariaDB 차이점

    서론데이터베이스에는 RDBMS와 NoSQL이 있다. RDBMS의 대표적인 예로는 MySQL이 있고, NoSQL의 대표적인 예로는 MongoDB가 있다. 그런데 나는 처음 데이터베이스를 다룰 때 mariaDB를 사용했다. MySQL과 유사하다는 것만 알고 있었기에 MySQL과 MariaDB의 차이...
    Date2024.10.19 Reply0 Views569 file
    Read More
  8. DB 모델링 - ERD(Entity Relationship Diagram)

    ERD(Entity Relationship Diagram) 개체 또는 데이터 간의 관계를 표현한 도식화된 그림을 말합니다. 글로 표현되어 있는 관계를 그림으로 나타낸 것입니다. Entity 데이터의 집합을 의미하는 추상적인 의미를 뜻합니다. Entity는 여러 속성(Attribute)를 가집...
    Date2024.09.24 Reply0 Views556 file
    Read More
  9. No Image

    MongoDB의 특징과 이점

    MongoDB란? MongoDB(IBM 외부 링크)는 오픈소스 비관계형 데이터베이스 관리 시스템(DMBS)으로, 테이블과 행 대신 유연한 문서를 활용해 다양한 데이터 형식을 처리하고 저장합니다. NoSQL 데이터베이스 솔루션인 MongoDB는 관계형 데이터베이스 관리 시스템(R...
    Date2024.09.15 Reply0 Views492
    Read More
  10. CUBRID, 국내 유일의 오픈소스 DBMS

    CUBRID, 국내 유일의 오픈소스 DBMS다. 다양하게 쓰인다.겁나 잘나간다 와! 이 모든 기능이 무료! 엔진의 소스 코드가 수정되면 소스를 까야하지만, 큐브리드 DBMS를 사용하도록 개발된 것들은 소스 코드를 공개하지 않아도 판매할 수 있다. 큐브리드 = 응용프...
    Date2024.09.15 Reply0 Views547 file
    Read More
  11. 2023년 데이터베이스 관리 시스템(DBMS) 순위

    2023년 데이터베이스 관리 시스템(DBMS) 순위 Database/INFO / aruru / 2023. 3. 17. 19:52 DB-Engines 에서는 자체 산정 기준에 따라 매월 DBMS 순위를 산정합니다. 산정 기준은 검색 엔진(Google, Bing) 검색횟수, Google 트렌드 검색빈도, SNS(LinkedIn, 트...
    Date2024.09.15 Reply0 Views812 file
    Read More
  12. MySQL 메이저 버전 업그레이드(MySQL 5 → MySQL 8) — 네이버 클...

    네이버클라우드에서 주요 고객 기술 지원을 담당하는 TAM (Technical Account Manager) 강철곤입니다. 업무 특성상 다양한 고객・파트너와 소통하며 업무를 진행합니다. 이런 제게 소프트웨어 업그레이드는 반가운 소식이면서도 어려움을 가져다 주기도 하는데...
    Date2024.09.15 Reply0 Views525 file
    Read More
  13. MySQL, EOS 및 EOL

    MySQL, EOS 및 EOL
    Date2024.09.15 Reply0 Views599 file
    Read More
  14. No Image

    MariaDB, LTS 및 EOS

    development and production https://mariadb.com/downloads/connectors/ MariaDB Community Version은 Free이며 해당 제품을 기반으로 작성하였습니다. Stable Date는 해당버전의 안정화된 버전의 출시날짜이고, 유지보수 지원기간은 일반적으로 5년입니다. L...
    Date2024.09.09 Reply0 Views681
    Read More
  15. PostgreSQL 설치 및 세팅 & pgAdmin 사용법 - Windows

    PostgreSQL 설치 및 세팅 & pgAdmin 사용법 - Windows 이번 글에서는 PostgreSQL 설치 방법과 초기 세팅, pgAdmin을 사용해 Database 생성 및 User 생성에 대해 정리할 것입니다. 우선 pgAdmin이란 PostgreSQL을 설치했을 때 기본적으로 설치되는 것이고, ...
    Date2024.02.19 Reply0 Views708
    Read More
  16. [PostgresSQL 이야기 1화] PostgresSQL 특징 및 장단점 소개

    오픈소스 DB 전성시대, 기업들이 PostgreSQL을 선택하는 이유“클라우드 전환에서의 오픈소스 DB, 선택 아닌 필수” 클라우드 도입 확대로 다가온 오픈소스 DBMS 전성시대, 그 중에서 개발자들이 가장 선호하는 포스트그레SQL은 대량의 데이터를 다루는 기업 및 ...
    Date2024.02.19 Reply0 Views593 file
    Read More
  17. PostgreSQL / 오픈소스 vs 상용, 벌어지는 인기 트렌드 격차

    PostgreSQL / 오픈소스 vs 상용, 벌어지는 인기 트렌드 격차 지난 해부터 소프트웨어 업계에서는 오픈소스 생태계가 대세가 되면서 상용 DBMS 사용 입지가 줄어들고 있습니다. 모바일 운영체제를 포함하여, 클라우드, 데이터베이스, 웹서버, 빅데이터 등의 주...
    Date2024.02.19 Reply0 Views508 file
    Read More
  18. No Image

    데이터 통합 도구 BTL Data Integrator(BTL DI) 소개

    https://www.youtube.com/watch?v=wT6ng96G6XU 데이터 통합 도구 BTL Data Integrator(BTL DI) 소개 BTL Data Integrator(BTL DI) 는 데이터 통합 및 마이그레이션을 위한 “ETL (Extract, Transformation, Load) Solution” 입니다. 다수의 원천 시스템으로 부...
    Date2023.06.22 Reply0 Views740
    Read More
  19. No Image

    [proc,ec,esql] 가장 기본적인 ec, 프로씨(proc) insert 프로그램

    [proc,ec,esql] 가장 기본적인 ec, 프로씨(proc) insert 프로그램 프로씨(proc) 강좌나 한국어 자료가 검색해보면 없다. 그래서 프로씨에 관해 궁금한 사람들을 위해 기초부터 전개해본다. 시중에 프로씨에 관한 책이 없기 때문에 충분한 내용이 전달안될 수도...
    Date2023.06.16 Reply0 Views564
    Read More
  20. No Image

    DB 암호화 - Echelon V2.5

    DB 암호화 - Echelon V2.5 - 데이터보안소프트(DataBoanSoft Inc.) Echelon V2.5는 국내 1300여개 고객사에서 검증된 컬럼단위 DB암호화 솔루션으로 국내최초 CC인증을 획득한 제품입니다. echelon_box.gifechelon_cc인증.pngCC인증echelon_암호화모들검증.jpg...
    Date2023.03.06 Reply0 Views552
    Read More
목록
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7