유정잉

16일차 [ 데이터베이스 DB, 프로젝트 모델링 ] 본문

네이버 클라우드 부트캠프/복습 정리

16일차 [ 데이터베이스 DB, 프로젝트 모델링 ]

유정♡ 2024. 3. 13. 10:48

[ 요구사항 정의서 ]

1. 학생은 아이디, 학과, 학생명, 이메일, 전화번호, 주소, 학년으로 되어있다.

2. 학과는 학과코드와 학과명으로 되어있다.

3. 한 학과에는 여러명의 학생이 있을 수 있다. 1:n 관계

4. 학생은 학과별로 관리한다.

5. 과목은 과목번호, 과목명, 교수로 되어있다.

6. 한 명의 학생은 여러 과목을 수강할 수 있고, 하나의 과목은 여러 학생이 들을 수 있다.

7. 학생은 수강한 과목을 들을 수 있다.

8. 학생이 수강을 할 때 수강할 과목수와 수강날짜를 가지고 있다.

9. ... 모든 경우를 다 적고 프로젝트를 시작하기 !! 엔티티(테이블)와 속성(아이디,학과)을 다 생각 하기 !!

 

[ 객체 관계 ]

학생 : 아이디, 학과, 학생명, 이메일, 전화번호, 주소, 학년

학과 : 학과코드와 학과명

과목 :  과목번호, 과목명, 교수

관계 : 3 , 6 , 7

수강 : 학생은 과목을 수강

관리 : 학생은 학과별로 관리됨

          (컴공,간호,경영 중에 학생이 하나를 선탹할지, 복전으로 여러개를 선택할지 정하기)

n 학생  : 1 학과 

n 학생  : 1 과대표  :  1 학과

n 학생  : n 수강 : n 과목

n 학생 : 1 단일전공 : 1 학과

 

[ 데이터베이스 모델링과 필수 용어 ] ☆★

    - 현실세계에 존재하는 데이터를 DB로 옮기는 변환과정 ( 5단계 순서 알기 !!! )

    1) 요구사항 분석 ( 요구사항정의서 작성 )

    2) 개념적 모델링 ( ERD 그리기 ) - 객체들간의 대응관계 ( 매핑 ) ( drawio를 통한 스케치 )

    3) 논리적 모델링 ( RM ) - pk, foreign key, 표형식, 테이블 형식으로 표현 관계 데이터 모델(RM) 많이 사용함.

        데이터타입, 널 값 허용여부, 제약조건, 기본키, 후보키, 외래키, 세부적으로 결정하고 결과를 문서화 시켜야함.

    4) 물리적 모델링 ( 테이블 정의서, PM ) - DB에서 설정 

    5) DBMS 구현

 

1) 요구사항 분석

  1-1)  요구사항 분석에서 제일 먼저 엔티티(E) 찾기

       -  학생은 학생아이디, 이름, 주소가 있다. -> 여기서 엔티티는 학생(명사) 일종의 테이블 !!!

       -  학과에는 교수이름, 학과명이 있다.  -> 여기서 엔티티는 학과(명사)  JOIN작업을 통해 계속 추가 복잡해짐

       - 성적에는 학과성적, 과목성적이 있다.  -> 여기서 엔티티는 성적(명사) 

  1-2) 속성 찾기 ( Attribute )

  1-3) 관계자찾기 ( Realation ) - 동사 찾기

       - 학생이 그 교수의 과목을 수강 했다. -> 학생과 교수의 관계가 1:1 / 1:n / n:n 인지 찾기

 

(( Ex) 중고거래 사이트 ( 당근마켓 .. )을 만든다고 하면 고객들 면담과 설문조사를 통해 고객들의 니즈를 받아 1) 요구사항 분석 작업을 해줌. ( 예를들어 고객은 고객코드, 전화번호, 메일, 주소 ... 되어있다. 제품은 가격과 색상... 고객은 등록된 제품읗 한 번만 사용할수 있다.. 등등 ) ))

 

4) 물리적 모델링

  4-1) 물리적 모델링 구현하는 순서 
        - Reverse : 쿼리문을 만들어 테이블을 생성하면 모델링 됨. ( DAtabase -> Reverse Engineer )
        - Forward : 모델링을 하면 테이블이 생성되면서 쿼리문이 만들어짐.

MySQL에서 Reverse 물리적 모델링 하는 법

 

 

[ 데이터베이스의 정의와 특징 ]

※데이터베이스 : ‘데이터의 집합’ • 여러 명의 사용자나 응용프로그램이 공유하는 데이터들 • 동시에 접근 가능해야 • ‘데이터의 저장 공간’ 자체

※ DBMS : 데이터베이스를 관리·운영하는 역할

 

[ DB/DBMS의 특징 ]

※ 데이터의 무결성 (Integrity) : 데이터베이스 안의 데이터는 오류가 없어야함. 제약 조건(Constrain)이라는 특성을 가짐

※ 데이터의 독립성 : 데이터베이스 크기 변경하거나 데이터 파일의 저장소 변경 –> 기존에 작성된 응용프로그램은 전혀 영향을 받지 않아야함

※ 보안 : 데이터베이스 안의 데이터에 데이터를 소유한 사람이나 데이터에 접근이 허가된 사람만 접근할 수 있어야함. 접근할 때도 사용자의 계정에 따라서 다른 권한 가짐

※ 데이터 중복의 최소화 : 동일한 데이터가 여러 개 중복되어 저장되는 것 방지

※ 응용프로그램 제작 및 수정이 쉬워짐 : 통일된 방식으로 응용프로그램 작성 가능,  유지보수 또한 쉬워짐

※ 데이터의 안전성 향상 : 대부분의 DBMS가 제공하는 백업·복원 기능 이용 / 데이터가 깨지는 문제가 발생할 경우 원상으로 복원 , 복구하는 방 법이 명확해짐

 

[ DBMS를 사용하는 이유 ]

 - 원래 초창기에는 수기로 작성 오프라인 관리를 해왔음.

   수기 - File System ( 데이터를 파일에 관리 ex 엑셀, 메모장 -> 데이터 조작 및 관리가 굉장히 힘든 단점이 있었음)

   그래서 DBMS를 통해 조작 및 관리를 해오기 시작 !

 - SQL로 데이터를 CRUD 할 수 있다. ( C - Create, R - Read, U - Update, D - Delete )

 

[ 데이터베이스의 발전 ]

※ 데이터베이스 관리시스템 : 파일시스템의 단점 보완 • 대량의 데이터를 보다 효율적으로 관리하고 운영하기 위해 사용  DBMS - DataBase Management System • 데이터의 집합인 ‘데이터베이스’ 를 잘 관리하고 운영하기 위한 시 스템 또는 소프트웨어

※ SQL( Structured Query Language) : DBMS에 데이터 구축/관리/활용 위해서 사용되는 언어 • DBMS를 통해 중요한 정보들을 입력, 관리, 추출

 

[ DBMS 분류 ]

※ 계층형 DBMS : (실무에서 거의 사용하지 않음)처음으로 나온 DBMS 개념 - 1960년대에 시작 • 각 계층은 트리Tree 형태, 1:N 관계 • 문제점 – 처음 구축한 이후 그 구조를 변경하기가 상당히 까다로움 – 주어진 상태에서의 검색은 상당히 빠름 – 접근 유연성 부족해서 임의의 검색에는 어려움 

※ 망형 DBMS : (실무에서 거의 사용하지 않음) 계층형 DBMS의 문제점을 개선하기 위해 1970년대에 시작 • 1:1,1:N, N:M(다대다) 관계 지원 - 효과적이고 빠른 데이터 추출 • 복잡한 내부 포인터 사용 – 프로그래머가 이 모든 구조를 이해해야만 프로그램의 작성 가능

 

※ 관계형 DBMS (Relational DBMS) ☆★ : 1969년 E.F.Codd라는 학자가 수학 모델에 근거해 고안 / 데이터베이스는 테이블Table이라 불리는 최소 단위로 구성 / 이 테이블은 하나 이상의 열로 구성 

 ▷ 장점 : 다른 DBMS에 비해 업무가 변화될 경우 쉽게 변화에 순응 / 유지보수 측면에서도 편리 / 대용량 데이터의 관리와 데이터 무결성Integration보장

 ▷ 단점 : 시스템 자원을 많이 차지해 시스템이 전반적으로 느려지는 것 – 하드웨어 발전되어 해결 

관계형 DBMS (Relational DBMS)

 

 

 

[ 정보시스템 구축 절차 요약 ] ☆★

    - 분석, 설계, 구현, 테스트, 유지보수의 5가지 단계  -> ( 제일 중요한 단계 분석과 설계 )

 

※ 분석 : 구현하고자 하는 프로젝트의 가장 첫 번째 단계 • 시스템 분석 또는 요구사항 분석이라고 불림 • 요구사항 분석은 현재 우리가 ‘무엇을(What)’ 할 것인지 결정사용자의 인터뷰와 업무 조사 등을 수행 • 프로젝트의 첫 단추를 끼우는 중요한 단계 • 분석의 결과로 많은 문서 작성

 

※ 설계 : 시스템 설계 또는 프로그램 설계 • 우리가 구축하고자 하는 시스템을 ‘어떻게(How)’ 할 것인지 결정 • 대부분의 프로젝트에서 분석과 설계의 과정이 전체 공정의 50% 이 상 차지

 

※ 데이터베이스 모델링 : 현실세계에서 사용되는 데이터를 MySQL에 어떻게 옮겨 놓을 것인 지를 결정하는 과정 • 저장할 정보는 테이블(Table)이라는 형식에 맞춰 저장

데이터베이스 모델링  Ex) 쇼핑몰 데이터 베이스의 예

 

※ 데이터 : 하나하나의 단편적인 정보 • 정보는 있으나 아직 체계화 되지 못한 상태

※ 테이블 : 데이터를 입력하기 위해, 표 형태로 표현한 것 • Ex) 회원 정보 테이블, 제품 정보 테이블

※ 데이터베이스(DB) : 테이블이 저장되는 저장소 • 각 데이터베이스는 서로 다른 고유한 이름을 가지고 있음

※ DBMS (DataBase Management System) : 데이터베이스를 관리하는 시스템 또는 소프트웨어

※ 열(=컬럼=필드) : 각 테이블은 열로 구성 • 회원 테이블의 경우에는 아이디, 회원 이름, 주소 등 3개의 열로 구 성

※ 열 이름 : 각 열을 구분하기 위한 이름 • 열 이름은 각 테이블 내에서는 중복되지 않고, 고유해야 함

※ 데이터 형식 : 열의 데이터 형식 16/17 • 테이블을 생성할 때 열 이름과 함께 지정

※ 기본 키 (Primary Key) 열 : 기본 키(또는 주 키) 열은 각 행을 구분하는 유일한 열이다. 중복되어서는 안되며, 비어 있어서도 안 된다. 각 테이블에는 기본 키가 하나만 지정

※ 외래 키(Foreign Key) 필드 : 두 테이블의 관계를 맺어주는 키 • 4장 이후 설명

※ SQL (Structured Query Language) : 구조화된 질의 언어 • 사람과 DBMS가 소통하기 위한 말(언어) • 6, 7장에서 자세히 다룸

 

 

[ 프로젝트 (Project) ]

  - ‘현실세계의 업무를 컴퓨터 시스템으로 옮겨놓는 일련의 과정’

  - ‘대규모의 프로그램을 작성하기 위한 전체 과정’ • Ex) 집 짓기의 경우 초가집 목조건물, 수 십층 이상의 건물

  - '소프트웨어 개발 방법론’의 대두

 

※ 폭포수 모델 (Waterfall Model)

  - 가장 오래되고 전통적으로 사용되는 소프트웨어 개발 모델이다. 폭포가 떨어지듯이 각 단계가 끝나면 다음 단계로 진행

 ▷장점 : 각 단계가 명확히 구분되어 프로젝트의 진행 단계가 명확해짐

 ▷단점 : 문제점이 발생될 경우 다시 앞 단계로 거슬러 올라가기가 어렵다. 문제점이 대부분 프로그램 구현 단계나 테스트 단계에서 발생한다. 해결은 업무 분석단계에서 다시 시작 -> 업무 분석과 시스템 설계에 50% 이상 할당

 

폭포수 모델 (Waterfall Model)

 


 

[ 개념 모델링을 할때 사용하는 다이어그램 사이트 - 1 ]

draw.io (diagrams.net)

 

Flowchart Maker & Online Diagram Software

Flowchart Maker and Online Diagram Software draw.io is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER diagram tool, to design database schema, to build BPMN online, as a circuit d

app.diagrams.net

    ( 주로 ㅁ 엔티티   ㅇ 속성   | 관계 )

 

[ 개념 모델링을 할때 사용하는 다이어그램 사이트 - 2 ]

ERDCloud

 

ERDCloud

Draw ERD with your team members. All states are shared in real time. And it's FREE. Database modeling tool.

www.erdcloud.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90