Data base

2022. 3. 17. 18:16SQL

  • 데이터 : 컴퓨터가 처리할 수 있는 문자,숫자,소리,그림 따위의 형태로 된 정보
  • 테이블 : 데이터베이스에서 데이터를 형태를 정해 모아 놓은 저장 공간

데이터베이스의 특징

  • 의미 : 테이블 저장해 두는 구조 (스키마)
  1. 자료를 구조화하여 저장하기 때문에 , 효율적인 관리가 가능하다.
  2. 여러 업무에 여러 사용자가 동시에 사용 가능하다.
  3. 사용자가 데이터베이스의 기능을 사용하기 위해서는 응용 프로그램을 활용해야한다.

MYSQL 데이터 타입

  • 날짜형 : DATE
  • 문자형 : CHAR(n)-고정 길이 문자열 저장 , VARCHAR(n)-변동 길이 문자열 저장
  • 숫자형 : 정수형(INT), 실수형(FLOAT)
  • MYSQL에서는 해당 저장 공간에 정해진 데이터 타입만 입력 가능함

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

  1. 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합
  2. DBMS은 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 함

데이터 베이스 시스템의 특징

  • 실시간 접근성 : 수 초 내에 결과를 서비스 함
  • 계속적인 변화 : 데이터 값은 시간에 따라 항상 바뀜
  • 동시 공유 : 여러 사용자에게 동시에 공유됨
  • 내용에 따른 참조 : 데이터 값에 따라 참조 됨

데이터 삽입, 삭제, 수정, 조회 기능

  • 조회
  • 갱신 : 삽입 , 삭제 수정

동시성 제어

  • 중요성 : 기업의 비즈니스 성패를 좌우할 수 있을 정도로 중요함

보안 기능

  1. 사용자에게 보여줄 데이터만 보여주는 것
  2. 보안에 위배되는 데이터는 데이터베이스 서버 내에서 관리
  3. 사용자는 데이터베이스 내부를 알 필요가 없고 자신이 원하는 정보처리만을 수행
  4. 개인 정보의 유출 등은 매우 심각한 사회문제가 되므로 중요함

데이터 저장 방식에 따른 데이터 베이스 종류

  • 계층형 데이터베이스 : 계층 구조로 데이터 관리
  • 관계형 데이터베이스 : 2차원 표 형식으로 데이터 관리
  • 객체 지향형 데이터베이스
  • NOSQL 데이터베이스

관계형 데이터베이스의 혁신성

  • 직관적인 방법으로 데이터 추출
  • SQL 언어를 이용한 간편한 데이터 추출
  • 데이터베이스 사용자 층의 빠른 증가에 기여
  • 개발 및 업무 생산성 확대

SQL

  • 장점
  1. 일반 프로그래밍 언어에 비해 간결함
  2. 간단한 영어 문장을 사용함
  3. 간단한 기본 조작 명령어 사용 : SELECT, INSERT, UPDATE, DELETE

테이블

  1. 관계형 데이터베이스에서 데이터를 관리 및 저장하는 장소
  2. 데이터의 효율적인 관리 및 적절한 조작이 매우 중요함
  3. 실생활에서 광범위하게 사용되는 2차원 표와 유사함

기본키의 중요성

  1. 특정 집합에서 특정 행을 유일하게 식별할 수 있는속성의 집합
  2. 기본키는 중복되면 안됨 : 가급적 변경 안 됨
  3. 반드시 기본키를 설정해야 함 : 한 개 테이블 내에서 중복 행 허용 X
  4. 단, 업무상의 이유로 기본키가 없는 테이블이 운영되는 곳도 존재함

정규형

  • 테이블을 정의하는 기본 형태
  • 제대로 된 형태를 뜻함
  • 정규화 위반 : 정규형을 제대로 지키는 행위

정규형 위반

  • 제1정규형(1NF) 위반
  1. 테이블 셀에 여러 개의 값을 포함하지 않음
  • 제2정규형(2NF) 위반
  1. 부분함수 종속성을 허용하지 않음
  2. 기본키를 구성하는 열의 일부에만 함수 종속이 존재하는 것
  • 제3정규형(3NF) 위반
  1. 기본 키를 제외한 일반 컬럼끼리 함수 종속이 발생
  2. 기본 키 이외의 키 간 발생하는 함수의 종속이 발생

ER 다이어그램

  • Barker 표기법 
  • Relationship

모델링의 정의

  1. 복잡한 "현실세계"를 단순화시켜 표현하는 것
  2. 사물또는 사건에 대한 양상이나 관점을 연관된 사람이나 그룹을 위하여 명확하게 하는 것
  3. 현실 세계의 추상화된 반영

모델링의 특징

  1. 추상화 : 현실세계를 일정한 형식에 맞추어 표현함
  2. 단순화 : 복잡한 현실세계를 약속된 규약에 의해 제한된 언어로 표현
  3. 명확화 : 누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술

데이터 모델링 용어

엔터티의 개념

  1. 사람, 장소, 물건, 사건, 개념 등의 명사에 해당 됨
  2. 업무상 관리가 필요ㄹ한 관심사에 해당 됨
  3. 저장이 되기 위한 어떤 것(Thing)
  4. 인스턴스의 집합이라고 할 수 있음

엔터티의 특징

  1. 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 함
  2. 유일한 식별자에 의해 식별이 가능해야 함
  3. 영속적으로 존재하는 인스턴스의 집합이어야 함 (두개 이상)
  4. 엔터티는 업무 프로세스에 의해 이용되어야 함
  5. 반드시 속성이 있어야 함
  6. 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 함

속성의 개념

  1. 업무에서 필요로 함
  2. 의미상 더 이상 분리되지 않음
  3. 엔터티를 설명하고 인스턴스의 구성요소가 됨

속성의 특징

  1. 앤터티와 마찬가지로 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 함
  2. 정규화 이론에 근간하여 정해진 주 식별자에 함수적 종속성을 가져야 함
  3. 하나의 속성에는 한 개의 값만을 가짐 : 하나의 속성에 여러 개의 값이 있는 다중 값일 경우 별도의 엔터티를 이용하여 분리함

속성의 분류

  • 특성에 따른 분류
  1. 기본 속성 : 업무분석을 통해 바로 정의한 속성
  2. 설계 속성 : 원래 업무상 존재하지는 않지만 설계를 하면서 도출해내는 속성
  3. 파생 속성 : 다른 속성으로부터 계산이나 변형이 되어 생성되는 속성
  • 엔터티 구성방식에 따른 분류
  1. PK 속성 : 엔터티를 식별할 수 있는 속성
  2. FK 속성 : 다른 엔터티와의 관계에서 포함된 속성
  3. 일반 속성 : 엔터티에 포함되어 있고 PK, FK에 포함되지 않은 속성

도메인(Domain) : 각 속성이 가질 수 있는 값의 범위로 각 속성은 도메인 이외의 값을 갖지 못함

엔터티, 인스턴스, 속성, 속성 값의 관계

  1. 한 개의 엔터티는 두 개 이상의 인스턴스 집합이여야 함
  2. 한개 의 엔터티는 두 개 이상의 속성을 갖음
  3. 한 개의 속성은 한 개의 속성값을 갖음

관계의 정의

  1. 상호 연관성이 있는 상태
  2. 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태

관계의 분류

  • 존재의 의한 관계
  • 행위에 의한 관계

관계의 표기법

  • 관계명
  • 관계차수 (EX) 1:M , 1:1, M:M
  • 관계선택사항 (EX) 필수참여관계, 선택참여관계

식별자 개념

  • 엔터티의 각 인스턴스를 개별적으로 식별하기 위해 사용되는 관계들의 조합
  • 엔터티내에서 인스턴스들을 구분할 수 있는 구분자

식별자의 특징

  1. 유일성 : 주식별자에 의해 엔터티내에 모든 인스턴스들이 유일하게 구분되어야 함
  2. 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함
  3. 불변성 : 지정된 주식별자 값은 자주 변하지 않는 것이어야 함
  4. 존재성 : 주식별자가 지정이 되면 반드시 값이 들어와야 함

식별자 분류

  1. 대표성여부 : 주식별자, 보조식별자
  2. 스스로 생성여부 : 내부식별자, 외부식별자
  3. 속성의 수 : 단일식별자, 복합식별자
  4. 대체여부 : 본질식별자, 인조식별자

식별자, 비식별, 외부식별자

  • 식별자 관계 : 자식엔터티의 주식별자로 부모의 주식별자가 상속되는 경우
  • 비식별자 관계 : 부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우
  • 외부식별자(Foreign Key) : 자기 자신의 엔터티에서 필요한 속성이 아니라 다른 엔터티와의 관계를 통해 자식 쪽에 엔터티에 생성되는 속성

'SQL' 카테고리의 다른 글

SQL : Between, In, Limit  (0) 2022.03.17
Subquery  (0) 2022.03.17
문자형, 숫자형, 날짜형 함수 정리  (0) 2022.03.17
Null , SQL 쿼리 실행 순서  (0) 2022.03.17
IF, Case When  (0) 2022.03.17