• KTDS_자바&파이썬 웹애플리케이션전문가 양성과정교육_16일차(DB)

    2021. 8. 12.

    by. KAEY

    자바&파이썬 웹애플리케이션 전문가 양성과정 채용연계형 교육과정 16일차

    KT 자바교육 후기 (2021-07-22 ~ 2021-12-03) 

    2021-08-12 인생은 아름답지 않다.

    DB 발전배경, RDBMS 종류, DBMS 장점 단점, 데이터베이스 시스템 요소, 파일 시스템,


    [오전]

    데이터(data)

    현실세계에서 사건이나 사물의 특징을 관찰하거나 측정하여 기술하는 가공되지 않은 사실이나 값을 의미 자료라고 부르기도 한다.

     

     

    정보(information)

    의미 있고 쓸모 있는 내용으로 가공하여 체계적으로 조직한 데이터

     ex) 기저귀 근처에 맥주를 배치해놓으면 맥주의 판매량에 영향을 미친다.

     

     

    데이터베이스(Database, DB)

     일상에서 생활하는 거의 모든 행동들에서 발생하는 데이터를 모아놓은 것

     관련된 데이터의 집합

     어떤 특정한 조직에서 여러 명의 사용자 또는 응용 시스템들이 공유하고 동시에 접근하여 사용할 수 있도록 구조적으로 통 합하여 저장한 운영 데이터의 집합

     

     

    데이터베이스 정의

    - 공유데이터 : 데이터의 통합관리를 통해 공동으로 소유하고 유지하며 이용

    - 통합된 데이터 : 여러군데 분산된 데이터를 통합하여 중복을 최소화 하기 위한 개념. 중복 최소화.

    - 저장된 데이터 : 접근 가능한 매체에 저장된 디지털 데이터

    - 운영 데이터 : 조직 고유 업무를 수행하기 위해 지속적으로 유지해야 하는 데이터

     

     

    데이터베이스 특징

    - 질의(query)에 의한 실시간 처리

    - 삽입, 삭제, 갱신에 의해 계속적으로 변하고, 정확한 데이터를 유지

    - 여러 사용자가 자신이 원하는 데이터를 동시 공유할 수 있다

    - 사용자가 원하는 데이터의 내용에 따라 참조할 수 있다

     

     


    FIle System

    FILE SYSTEM의 단점

      (1) 데이터의 중복 저장

      (2) Program과 data간의 독립성이 없으므로 유지보수 비용이 큼

      (3) 무결성의 유지 어려움

      (4) 보안에 취약

     

     


    DBMS의 발전 배경

    파일 시스템의 문제

      응용프로그래머가 파일 데이터베이스까지 생성 및 관리

      데이터베이스 구축에 많은 개발 비용(시간+금액+인원) 투자

     

     

    데이터 종속성

      파일 데이터베이스 구조의 변경에 따라 모든 응용 프로그램에 많은 변경 발생

     

     

    데이터 중복성 (한 시스템에 동일한 데이터 존재)

      일관성(CONSISTENCY) : 중복된 데이터 간에 불일치발생 

      보안성(SECURITY) : 중복된 데이터 간에 동일한 보안 유지어려움

      경제성(ECONOMICS) : 데이터를 중복 저장하는 데 있어 비용이소모 

      정확성 : 중복된 데이터로 인해 데이터의 정확성을 유지하기 어렵다

     


    데이터베이스 관리 시스템 발전과정

     1세대 데이터베이스 관리 시스템 : 네트워크∙계층DBMS

     데이터베이스를 노드와 간선을 이용한 그래프 형태로 구성하는 네트워크 데이터 모델을 사용

     

     

     2세대 데이터베이스 관리 시스템 : 관계DBMS

     데이터베이스를 테이블 형태로 구성하는 관계 데이터 모델을 사용 오라클, MS-SQL, Access, 인포믹스, MySql 등

     

     

     3세대 데이터베이스 관리 시스템 : 객체지향∙객체관계DBMS

     객체지향 프로그래밍의 객체라는 개념을 이용해 데이터베이스를 구성하는 객체지향 데이터 모델을 사용 O2, ONTOS, GemStone 등

     

     

     4세대 이후 데이터베이스 관리 시스템 : NoSQL∙NewSQL DBMS

     사진, 동영상, 검색 로그와 같은 대량의 비정형 데이터를 처리하기 위해 안정성과 일관성 유지를 위한 복잡한 기능을 포기하고, 뛰어 난 확장성으로 여러 대의 서버 컴퓨터에 데이터를 분산 및 저장, 처리에 사용 MonggoDB, Hbase, Cassandra, Redis, Neo4j, OrientDB 등

     

     


    RDBMS 종류

    오라클 : RDBMS의 대표주자

    RDBMS의 특징 대부분이 구현됨. 1972년 v2이후 꾸준히 새로운 버전을 출시

    11g버전이 많이 사용되며 12c 사용이 증가되고 있는 중

    가격이 비싼 것이 가장 큰 단점

     

     

    IBM DB2

    RDBMS 창시자인 E.F.커드 박사는 IBM 연구소 재직당시 RDBMS 개념을 선보였고, DB2를 1983년에 출시 많은 기업과 금융권에서 사용중

     

     

    MS-SQL

    1989년 마이크로소프트에서 Sybase DB를 기반으로 만듦 2019버전까지 출시된 상태

     

     

    MySQL

     1995년 출시 된 오픈소스 RDBMS. 2008년 썬마이크로시스템즈에서 인수. 이후 오라클이 2010년 썬마이크로시스템즈 인수하면서 오라클로 넘어가게 됨. 무료와 상용버전으로 나뉘어 있음

     

     

    PostgreSQL

     시장 점유율이 꽤 높은 편. 일본과 미국에서 인기가 많고, 국내에서도 점차 사용되는 곳이 늘어나고 있음

     

     

    MariaDB

     MySQL을 만든 마이클 몬티 와이드니어스는 썬 마이크로시스템즈가 오라클에 인수된 후 MySQL 발전 방향에 관해 오라클과 이견이 발생해 퇴사해 만든 DB. 국내에서 사용도 점차 늘어가는 중

     

     


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

     사용자 또는 응용 프로그램과 데이터베이스의 사이에 위치하여 데이터베이스를 공유할 수 있도록 관리해 주는 소프트웨어

     

     

    장점

     (1) 데이터 중복의 최소화 (2) 데이터 공유 가능 (3) 데이터 일관성 유지

     (4) 데이터 무결성 유지 (5) 데이터 보안을 보장

     

     

    단점

    (1) 파일 시스템 대비 고비용 소요

    (2) 구조의 복잡성으로 인해 장애 발생 시 사태파악이 어려울 수 있음

     


    데이터베이스 시스템 구성요소

    사용자

      User 혹은 End User : 응용 프로그램을 사용하는 사람

      Application programmer : end user가 사용할 수 있는 DBMS와 연동된 응용 프로그램을 개발하는 사람

      DBA(Database Administrator) : DBMS 및 이와 관련된 하드웨어 혹은 소프트웨어를 관리하고 감독하는 관리자

     

     

    데이터언어

      데이터 정의어(DDL, Data Definition Language) : 데이터베이스 스키마를 정의하거나 그 정의를 수정할 목적으로 사용하는 언어. Create, Alter, Drop 등

      데이터 조작어(DML, Data Manipulation Language) : 데이터를 검색, 삽입, 삭제, 변경하는데 사용하는 언어. Insert, Update, Delete 등

      데이터 제어어(DCL, Data Control Language) : 데이터베이스의 정확성을 유지하는데 사용. Grant, Revoke 등

     

     

    데이터베이스 관리시스템

      DBMS는 모든 응용 프로그램들이 데이터베이스를 공용할 수 있도록 필요한 제어, 접근 방법, 관리 등의 기능을 수행하는 데이터 베이스 관리 소프트웨어

      오라클의 Oracle, 마이크로소프트의 SQL Server 등이 대표적

     

     

    데이터베이스

      특정 조직에서 공동으로 데이터를 사용하기 위해 데이터를 구조화하고 중복을 최소화하여 통합 저장한 데이터의 모임 데이터 사전(Data Dictionary) 또는 시스템 카탈로그(System catalog)는 데이터베이스에 포함된 모든 데이터 개체에 대한 정의 와 명세에 관한 정보를 유지 관리하는 시스템이며, 데이터에 관한 데이터라는 의미의 메타 데이터

      또한, Data Dictionary에 수록된 데이터를 실제로 접근하는데 필요한 정보를 관리 유지하는 시스템은 Data Directory.

     

     

    3단계 스키마

    단계 설명
    외부 스키마
    (externam schema)
    개별 사용자 입장에서 데이터베이스 구조를 기술한 것
    개별 사용자를 위한 여러 형태의 외부 스키마가 존재
    개념 스키마
    (conceptual schema)
    조직 전체 입장에서 통합한 데이터베이스를 기술한 것
    하나의 개념 스키마만 존재
    일반적으로 스키마로 지칭 됨
    내부 스키마
    (internal schema)
    저장장치 입장에서 전체 데이터베이스가 저장되는 방법을 명세

     


    [오후]

    데이터 모델링

    데이터베이스의 구조를 단순화, 추상화하여 체계적으로 표현하는데 사용되는 도구

     

     

    데이터 모델 구성요소

      데이터 구조(Data Structure)

      현실 세계에서 선별하여 데이터베이스에 저장할 데이터에 대해 요소와 관계를 구조적으로 명세하여 표현한 것. 자주 변하지 않고 정적인 것이 특징.

     

     

      연산(Operation)

      데이터 구조에 따라 실제 값들을 처리하는 작업에 대한 명세, 데이터의 조작 기법.

      실제 데이터는 연산에 의해 계속 변경될 수 있으므로 동적인 것이 특징.

     

     

      제약조건(Constraint)

      결점없이 정확하고 유효한 데이터가 저장될 수 있도록 하기 위하여 데이터를 조작하는데 한계를 규정한 것. 연산을 적용하는 경우 허용할 수 있는 제약사항을 의미.

     

     


      개념적 데이터 모델

      데이터베이스의 논리적 구조를 명시. 사람이 이해하는 개념. 기술 용어는 가급적 사용하지 않음.

      추상화 수준이 가장 높다. ER모델(Entity-Relationship model)이 대표적.

      개체(entity)와 속성(attribute) 그리고 개체 간의 관계(relationship)를 이용하여 데이터를 추상화하여 개념적 구조로 표현하는 방법

     

     

      개체-관계 모델

      피터 첸이 1976년에 제안한 것. 개체(entity)와 개체 간의 관계(relationship)을 이용해 개념적 구조로 표현하는 방법.(ERD)

      개념적으로 모델링하여 그림으로 표현한 것을 개체-관계 다이어그램(Entity-Relationship Diagram) 또는 E-R 다이어 그램이라 함

     


     개체(entity)

      식별자가 있고, 2개이상의 인스턴스가 있으며, 속성을 가지고 있고, 다른 개체와 최소한 한 개 이상 관계가 있다. 또한 업무에서 관리되는 집합이다.

     

     

    종류

    유형 엔터티 : 유형의 정보를 가진 업무에서 도출되는 물리적으로 실체하며 지속적으로 사용되는 엔터티

    개념 엔터티 : 물리적으로 형태가 존재하지 않으며, 개념적으로 존재하며 사용되는 엔터티

    사건 엔터티 : 비즈니스 프로세스 실행시 생성되는 엔터티

     

     

    발생 시점에 따른 종류

    기본 엔터티 : 업무에 존재하는 정보. 다른 엔터티와의 관계에 의존하지 않고 독립적으로 생성됨. 키 엔터티라고도 함

    중심 엔터티 : 기본 엔터티에서 발생하며, 데이터 양이 많음. 업무의 중심적인 역할을 함. 다른 엔터티와의 관계를 통해 사건 엔터티를 생성.

    사건 엔터티 : 두 개 이상의 엔터티로부터 발생되고, 내용이 빈번하게 변경되거나 데이터 양이 증가됨. 분석 초기에 잘 나타나지 않고 상세 설계 단계를 거치며 나타나곤 함

     

     


    속성(attribute)

    엔터티가 가지는 항목. (학생 -> 고등학생, 대학생, 이름, 성별 등)

    개체의 특성이나 상태를 구체적으로 기술하고, 속성값은 개체의 특성이나 상태가 현실화 된 값. 하나의 값만 가짐.

     

     

    분해 여부에 따른 종류

    단일 속성 : 하나의 의미로 구성된 것. 예) 회원ID, 이름 등

    복합 속성 : 독립적인 의미를 가진 몇 개의 기본적인 단순 속성으로 분해할 수 있는 것. 예) 주소, 생년월일 등

    다중값 속성 : 하나의 속성이 여러 개의 속성값을 가지는 것. 예) 연락처 등

     

     

    특성에 따른 종류

    기본 속성 : 비즈니스 프로세스에서 도출되는 본래의 속성. 예) 회원ID, 이름 등

    설계 속성 : 데이터 모델링 과정에서 발생되는 속성. 유일한 값을 부여. 예) 상품코드 등

    파생 속성 : 다른 속성에 의해서 만들어지는 속성. 예) 합계, 평균 등

     


    관계(relationship)

    개체와 개체가 맺고 있는 의미 있는 연관성을 의미.

    존재의 행태나 행위로 서로에게 영향을 줌.

     

     

    종류

    존재 관계 : 엔터티 간의 상태를 의미. 예) 출판사가 책을 출판한다. 고객이 은행에 회원가입을 한다. 등

    행위 관계 : 엔터티 간에 어떤 행위가 있는 것. 예) 고객이 책을 주문한다. 계좌를 이용해 주문을 발주한다. 등

     

     

    관계 차수

    특정한 관계에 연결된 개체의 개수를 의미.

    개체가 자기 자신과 관계를 맺는 1차, 두 개의 개체를 연결하는 2차, n개를 연결하는 n차가 있음.

     

     


    관계(relationship)

     

    1대1 관계

    관계에 참여하는 각각의 인스턴스가 관계를 맺는 다른 인스턴스에 대해 단지 하나의 관계만을 가지는 것.

     

     

    1대N 관계

    관계에 참여하는 각각의 인스턴스가 관계를 맺는 다른 개체의 인스턴스에 대해 하나 이상의 수와 관계를 갖지만, 반대방향은 하나의 관계만 가지는 것.

     

     

    M대N 관계

    관계에 참여하는 각각의 인스턴스가 관계를 맺는 다른 개체의 인스턴스에 대해 하나 이상의 수와 관계를 갖고, 반대 방향도 동일하게 관계에 참여하는 각각의 인스턴스에 대해 하나 이상의 수와 관계를 가지는 것.

     

     

     

     

    식별관계

    독립적으로 존재할 수 있는 강한 개체는 다른 엔터티에 의존하지 않고 독립적으로 존재

    강한 개체는 다른 엔터티와 관계를 가질 때 다른 엔터티에게 기본키를 공유

    강한 개체는 식별관계로 표현 즉, 식별관계란 기본키를 다른 엔터티에게 기본키의 하나로 공유하는 것

    강한 개체의 기본키 값이 변경되면 식별관계(기본키를 공유받은)에 있는 엔터티의 값도 변경

     

    비식별관계

    강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 칼럼으로 관계를 가지는 것

     

     


    논리적 데이터 모델

     컴퓨터 내에서 데이터가 조직되는 방식과도 가깝게 데이터베이스의 구조를 명시하는 방법.

     특정 데이터베이스 모델에 종속됨.

     정규화를 통해 재사용성을 높임

     

     

    물리적 모델

     구축할 데이터베이스 시스템에 테이블, 인덱스 등을 생성

     물리적 성능과 보안, 가용성 등을 고려하여 구축

     

     


    관계 데이터 모델의 개념과 기본 용어

    ① 열(속성, 애트리뷰트) ② 도메인 ③ 행(투플)

     

     

    • 릴레이션 : 하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것

    • 속성(애트리뷰트)과 튜플 : 릴레이션의 열과 행

    • 도메인 : 하나의 속성이 가질 수 있는 값들의 집합

    • 널 : 아직 모르거나 해당되는 사항이 없음을 표현하는 특별한 값

    • 차수 : 하나의 릴레이션에서 속성 전체 개수

    • 카디널리티 : 하나의 릴레이션에서 투플의 전체 개수

     

     


    릴레이션의 특성

     

    투플의 유일성

     하나의 릴레이션에는 동일한 투플이 존재할 수 없음. 투플을 유일하게 구별하기 위해 선정되는 속성을 키(key)라 함. 키를 이용해 투플의 유일성이 만족되면 릴레이션에서 원하는 투플에 쉽게 접근 가능

     

     

    투플의 무순서

     하나의 릴레이션에서 투플 사이의 순서는 무의미 함 투플 순서가 바뀌는 것으로 다른 릴레이션이 될 수 없고, 순서와 상관없이 투플 내용이 같으면 동일한 릴레이션 데이터베이스는 위치가 아닌 내용으로 검색되므로 투플의 순서는 중요하지 않음

     

     

    속성의 무순서

     하나의 릴레이션에서 속성 사이의 순서는 무의미 속성의 순서가 바뀌어도 다른 릴레이션이 될 수 없고, 순서와 상관없이 같은 속성들로 구성되어 있어야 동일한 릴레이션 속성 값은 릴레이션에서 위치가 아닌 속성의 이름으로 접근하기 때문에 하나의 릴레이션에는 이름이 같은 속성이 존재할 수 없고, 이름도 속성의 의미가 명확히 드러나는 것으로 사용하는 것이 좋음.

     

     

    속성의 원자성 

     속성 값으로 원자 값만 사용 가능 모든 속성 값은 더는 분해할 수 없는 하나의 값, 즉 원자 값만 가질 수 있음. 릴레이션을 단순한 구조로 정의하고자 하는 특징이 있어 다중 값을 허용하지 않음

     


    먼지가 되었습니다.


    댓글 (비로그인 댓글 허용하지 않습니다.)