개발자 연쨘

[한화시스템 BEYOND SW캠프_5기_3일차] 데이터베이스01 본문

스터디/한화시스템 BEYOND SW 부트캠프

[한화시스템 BEYOND SW캠프_5기_3일차] 데이터베이스01

연쨘 2024. 1. 10. 19:17

 

데이터 베이스

 

프로그램을 한다 = 데이터를 한다

더보기

               (요청)            스프링               (요청)          SQL이용해서 작업

Browser ————> Server(Web) <————> DBMS (→안에 DB가 있음)

             <————                       jdbc, ORM, JPA ㄴCRUD로 작업

                   (응답)

데이터는 연속성을 갖어야한다.

-대전역에 우리나라 데이터를 관리하는 데이터 센터가 있다.

 

Browser

-Browser도 하나의 도구이다. 

 

데이터 베이스 (DB)

-하드웨어라고 생각하면 된다.

-Object ~ Table (Table은 2차원으로 이루어져있는 객체)

-DBMS안에 DB가있다. (소프트웨어)

-DBMS → 응용소프트웨어

-데이터는 파일로 관리해도 된다. → 파일저장하면 CSU라고 저장됨

  ㄴ CSU는 텍스트 형태이다.

  ㄴ CSU는 DB테이블에 넣어줄 수 있다.

 

DBMS를 할려면 SQL을 알아야한다.

 ㄴDBMS는 많은게 있다 (MySQL, mariaDB, 오라클, 아임웹에서나온 디비투)

 ㄴ 보편적으로 (R)DBMS를 사용한다 → 여기서 R은 공식적으로!

 

CRUD작업을 하게된다.

-테이블을 설계한다는 모델링한다라고 말할 수 있다.

 


 

데이터 베이스 개념

데이터베이스의 정의 :여러 응용시스템을 통해 엑세스가 가능한 (다 접근할 수 있어야해서 공유!)
공유된 형태의 통합된 데이터의 집합. 어느 특정 조직의 응용 업무에 공동으로 사용하기 위해
운영상 필요한 데이터를 중복을 최소화하여 컴퓨터 기억 장치 내에 모아 놓은 집합체

  • 공유가 가능해야함
  • 중복을 최소화

데이터

현실 세계로부터 단순한 관찰이나 측정을 통해서 수집된 사실이나 값

 

정보

상황에 따른 적절한 의사 결정을 할 수 있게 하는 지식으로 데이터의 유요환 해석이나 데이터 상호간의 관계를 말하는 것. 정보는 데이터를 처리해서 얻어진 결과 (데이터가 쌀이라면 정보는 밥과 같다.)

 

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

파일 시스템의 단점을 극복하고 데이터를 효율적으로 관리하기 위해 출현한 시스템

 

🐇 데이터베이스 관리 시스템의 유형

계층형(DBMS) : 계층형 데이터베이스 관리시스템은 계층적으로 데이터가 상하 종속적인 관계로 구성되어 있다.

 

네트워크 (DBMS) : 데이터 구조를 네트웍상의 노드 형태로 논리적으로 표현한 데이터 모델로서 각각의 노드를 서로 대등한 관계로 구성한 시스템이다.

*노드란 시스템을 의마하는것이 아니라 자료를 정의

 

관계형 DBMS : 데이터베이스는 최소한의 의미를 가지는 테이블들로 구성되며 그 테이블들에 있는 필드들로 연결한 것이다. 필드 또한 가장 작은 논리적인 단위로 구분하는 것이 좋다.

관계형 데이터베이스는 수학적 논리 관계를 테이블 형태로 구성한 구조로 테이블 내의 필드 중 일부를 다른 테이블과 중복함으로 해서 각 테이블간의 상관 관계를 정의 한다. ⇒ 예) 정규화

 

장점 : 업무 변화에 대한 적응능력, 유지 보수 편리성, 높은 생산성, 프로그램의 개발 용이

단점 : 시스템의 부하가 상대적으로 높다.

 


 

관계형 데이터베이스 관리 시스템

 

관계형 DBMS의 정의 :

데이터베이스는 최소한의 의미를 가지는 테이블들로 구성되며 그 테이블들에 있는 필드들로 연결한 것이다.

 

데이타베이스 설계시 참조 무결성은 가장 중요한 무결성 유지 방법이다.

따라서 반드시 DB 설계시 구현 해야하만 한다.

→ RDB의 가장 기본이 되는 핵심

 

데이터베이스는 최소한의 의미를 가지는 테이블들로 구성되며 그 테이블들에 있는 컬럼으로 연결하는것이다.

 


 

마리아DB

MySQL도 같은형식이라 안되면 MySQL로 해도된다고 하셨다.

 

이렇게도 테이블 생성이 되지만

 

이렇게 오른쪽 버튼 눌러서 새로생성 → 테이블 해줘도 생성이 된다!

 

테이블이름은 영어로 사용하는걸 권장하고, 테이블 이름은30자 이상은 안된다.

여기서 추가 버튼을 누르면! 열을 추가해준다.

 

열 한개 추가!

데이터 유형을 보게되면 바이너리 타입은 잘 사용하지 않는다고 한다.

 

여기서 50은 문자길이가 아니라 바이트로 나타낸 용량이다.

 

오른쪽 버튼 클릭 → 새인덱스 생성 → PRIMARY 하면 NULL값을 안들어가게 해주게 만들어줌.

위 사진에선 user_id !

 


데이터베이스

 

데이터베이스 모델링

데이터 베이스 모델링은 크게 3단계를 거쳐서 완성시키는 것이 보편적이다.
개념적 모델링, 논리적 모델링, 물리적 모델링으로 나눌 수 있다. [정처기에 나올 수 있는 내용]

 

데이터의 세계

데이터는 컴퓨터의 세계이다.

 

실체(Entity)

업무수행을 위하여 기업이 알아야 될 대상이 되는 사람, 장소, 사물, 사건 및 개념. (데이터로 관리 되어져야 하는 항목)

각 실체는 유일하게 식별 가능, 인스턴스라 불리는 개별적인 객체들의 집합으로 반드시 주 식별자가 존재해야함.

 

* 실체 만들 때 주의사항
실체를 만들 때 상상력을 더해서 만들면 안된다.
이런 상상력이 신뢰도를 떨어뜨릴 수 있음.

 


개념적 데이터베이스 모델링

 

관계 : 두개의 실체간에 명명되어진 의미있는 연결이며 두 실체간에 업무적인 연관성을 나타낸다.

 

최종산출물 → ER다이어그램

 

식별관계이다.

학년코드는 외래키인데 Null값을 같지 못하게됨.

 

여기서 ! ㅣ 이표시에 대해 알아보자!

멘데토리! 위사진처럼 ㅣ 이렇게 된건 서로간의 강제성을 갖게되는것이다.

 

 

*외래키는 부모에 의존하는키

 

~ 될지도 모른다 ⇒ null이 들어가야한다 (점선)
반드시 ~해야힌다. ⇒ 멘덴토리여야한다. (실선)
개선 되어질지도 모른다. ⇒ N:N

 

 

점선은 비식별관계이다.

비식별관계는 식별관계에선 이렇게 동그라미가 생긴다.

이렇게 동그라미는 옵셔널이 되는것이다. ⇒ 즉, 학년코드에 null값이 될 수 있다는 말과 같다.

 


 

실습

 

업무분석표

◼ A라는 모 중학교 선생님은 매번 반복되는 서류처리를 DB화 시키려고 한다.

◼ 선생님께서 전산화하려고 하는 업무는 학년이끝날 때 어느반의어떤 과목이규정된 수업시간과 맞는지 비교하려고하는 것이다.

학년별로해당 과목의 규정수업시간은 정해져있으며 학년 말에 과목별 실제 수업일수가 규정된수업시간과 맞는지를 체크해서 부족한 경우에는 보강 등을 통해서규정된수업시간을 채워야하므로 이 데이터는 정확해야 한다.

◼ 현재 학년별 각반의 수업일수를 계산하기 위해서 각 반의 수업일지를 과목별로 일일이 수작업으로 확인하고 있다.

 

업무 분석

  • 학년이 끝날 때 어느반어떤 과목규정된 시간과 맞는지 비교하기
  • 규정수업시간이 정해져있다.
  • 학년 말에 과목별 실제 수업일수규정된 수업시간과 맞는지 체크하고 부족하면 보강해서 채워여한다.

이렇게 점선으로 해도 되지만 null값을 받지 않는다는 설정이 있어야한다!

728x90