IT/SQL Programming

불친절한 SQL 프로그래밍

만두토끼 2022. 8. 8. 00:20

1부 기본 개념

  1. 데이터
  2. 데이터 모델링
  3. 오라클 데이터베이스
  4. SQL

1. 데이터

1.1 데이터

 

정량적(quantitative) 데이터 : 숫자, 양, 구조화 되어있어서 정형(structured) 데이터, SQL(정형 분석에 사용되는 프로그래밍언어) 

정성적(qualitative) 데이터 : 텍스트, 이미지, 비정형(unstructured) 데이터, 빅 데이터(비정형 데이터를 분석하기 위한 기술을 총칭)

 

데이터를 분석하여 정보를 생성하고

정보를 해석하여 지식을 축적하고

지식에서 지혜를 얻고

지혜를 실천하며 데이터가 발생

 

IT(Information Techonolog) 

The application of computers to store, retrieve, transmit, and manipulate data, or information. -위키피디아-

데이터나 정보를 저장, 검색, 전송, 조작하는 컴퓨터 애플리케이션

 

1.2 데이터베이스

DataBase(DB)

A database if an organized collection of data.

데이터베이스 모델(Database model) - 계층형(hierarchical), 네트워크(network), 관계형(relational) 모델

관계형(Relational) 모델: 릴레이션(relation - 부분집합)에 데이터를 저장 - 튜플(tuple)의 집합 - 속성(attribute)의 집합

 

관계형 데이터베이스(Relational DataBase, RDB)

객체-관계형 데이터베이스(Object-relational database, ORDBMS)

NoSQL 데이터베이스(Not Only SQL database): 느슨한 일관성 모델을 채택한 데이터베이스로 빅 데이터와 실시간 웹 애플리케이션 영역에 활용중 

 

1.3 데이터베이스 관리 시스템

데이터베이스 관리시스템(DataBase Management System, DBMS)

Microsoft SQL Server, MySQL, PostgreSQL, SQLite, MongoDB, Cassandra, Redis

 

1.4 IT 시스템: 운영시스템에서 발생한 데이터는 EDW -> BI로 이동

운영 시스템(Operational System): 기업 운영에 필요한 데이터를 관리

EDW(Enterprise Data Warehouse): 분석을 위한 데이터를 저장

BI(Business Intelligence): 기업의 효율적인 의사 결정을 지원

 

1.5 직종과 직무 p.8

 

 

2. 데이터 모델링

2.1 데이터 모델

데이터 모델(data model)은 현실 세계를 데이터베이스로 구출할 수 있도록 추상화(abstraction)한 것

개념 데이터 모델(요구사항) -> 논리 데이터 모델(데이터베이스 모델) -> 물리 데이터 모델(DBMS)

 

2.2 E-R 모델

Entity-Relationship Model 

entity 와 relationship 으로 데이터를 표현

 

집합 > 개별

entity > instance

relatrionship > pairing

attribute > attribute value

엔터티 ---<- 인스턴스 ---<- 속성 ---<- 속성값

 

E-R 모델 / 관계형 모델 / 오라클 데이터베이스

엔터티 / 릴레이션 / 테이블

인스턴스 / 튜플 / 행

속성 / 속성 / 열

 

2.2.1 엔터티

객체로 인식할 수 있는 데이터의 집합

 

2.2.1.1 기본 식별자 

과목이라는 엔터티의 과목번호라는 기본 식별자(1개의 식별자: 단일 식별자)

과목번호
 

과목담당강사라는 엔터티의 과목번호, 강사번호 2개의 기본 식별자(2개의 식별자: 복합 식별자) 

-> 같은 과목을 담당하는 강사가 많음

과목번호
강사번호
 

 

2.2.2 속성

엔터티에서 관리하는 데이터의 최소 단위

학생 엔터티의 학번(기본식별자), 성명과 전화번호는(일반 속성)

학번
성명
전화번호

 

2.2.2.1 도메인

domain, 속성값의 범위

데이터 타입과 제약조건 

 

2.2.3 관계

엔터티 간의 업무적 연관

부모 엔터티, 자식 엔터티

자식 엔터티는 부모 엔터티의 기본 식별자를 상속받고 상속받은 식별자는 외래 식별자라고 한다.

 

2.2.3.1 카디널리티

cardinality 하나의 부모 인스턴스가 몇 개의 자식 인스턴스와 페어링 될 수 있는지를 나타냄

1:1, 1:M, M:M 관계 존재

 

2.2.3.2 옵셔널리티

optionality 

페어링 되어야 하면 필수(mandatory) 관계

페어링되지 않아도 되면 선택(optional) 관계

 

2.2.3.3 관계 유형

부모 엔터티의 기본 식별자가 자식 엔터티의 기본 식별자 속성으로 상속되면 식별(identifying) 관계 - 밀접한 관계(tightly coupled) - 기본 식별자가 길어져서 저장 공간도 늘어나고 SQL 도 길어짐

일반속서으로 상속되면 비식별(non-identifying) 관계 - 느슨한(loosely coupled)다. - 저장 공간은 최소화하지만 2단계 이상 넘어가면 관계가 단절