1, 데이터베이스란?
- 현실의 대상을 데이터 베이스에 저장할 수 있도록 설계 및 구축을 하는 과정
- 요구사항 접수 > 개념적 데이터 모델링 > 논리적 데이터 모델링 > 물리적 데이터 모델링 > 세팅 완료
2. 개념 데이터 모델링
- 복잡한 현실세계의 대상을 단순화, 추상화, 명확화 하는 작업
- 요구사항을 단순하게 그림으로 표현하는 방법
- 엔터티, 속성, 인스턴스, 관계, ERD

* 관계: 엔터티 간의 의미 있는 정보가 있는지 확인해보고 의미를 관계로 설정해 데이터를 표현하는 방법

* ERD(Entity, Relationship, Diagram)
: 엔터티와 엔터티 간의 관계를 발견하고 이를 그림으로 표현한 것
(1) 엔터티를 그린다.
(2) 엔터티를 적절히 배치한다.
(3) 관계를 설정한다. (서로 관계가 있는 엔터티끼리 선으로 이어준다.)
(4) 관계명을 기술한다. (생략가능)
(5) 관계의 참여도(Cardinality)를 기술한다.
- 참여도란 엔터티 안의 인스턴스들이 얼마나 관계에 참여하는지를 의미함
- 1:1, 1:N, N:N 관계등이 있으며, N쪽에는 까치발(<,>)을 표시한다.

(6) 관계의 필수여부(Opionality)를 기술한다.
- 필수여부란 인스턴스들이 관계에 반드시 참여하는지를 의미
- O: 0개 참여, ㅣ: 최소 1개 참여, <: N개 참여
- 2개 : l<

3. 논리 데이터 모델링
- 작성한 ERD를 토대로 보다 상세한 설계도를 작성한다.
- 속성 입력, 식별자 선택, 정규화, 관계설정 등을 설정한다.
- 논리적 모델링은 3가지의 모델링 중에서 가정 중요한 과정이다.
1) 속성입력

2) 식별자(PRIMARY KEY) 선택

- 엔터티 내에서 유일한 인스턴스를 식별 할 수 있는 속성 집합
- 각 엔터티는 무조건 식별자를 하나 가지고 있어야 한다.
3) 정규화 : 데이터가 중복 저장되는 것을 막기 위해 엔터티를 쪼개는 활동

4) 관계설정(FOREIGN KEY) : 엔터티 간의 관계를 데이터로 표현하기 위해 식별자를 빌려온다


** N:N 관계에서는 주의!! >>> 관계의 이름을 이용해 추가로 엔터티를 새성

1. SQL 의미와 종류
- Structured Query Language
- 데이터베이스가 이해 할 수 있도록 특정 문법에 맞춰서 질의 하는 것
1) SQL 문법의 종류
- SELECT : 테이블에서 원하는 데이터를 조회한다.
- DML: 데이블에서 데이터를 입력/삭제/수정한다.
- DDL: 테이블 같은 데이터 저장소 객체를 만들거나 수정한다.
- TCL: 트랜잭션을 제어한다.
- DCL: 객체에 권한을 부여한다.
2) 테이블이란?
- 엔터티를 물리적 모델링한 결과로 데이터를 저장하는 저장소 기능을 가짐
- 테이블은 2차원 행, 열 형태를 유지한다.
- 행 = 튜플 / 열=컬럼
2. SQL 실행순서
5) SELECT : 출력하고 싶은 컬럼만 작성하기
1) FROM : 데이터를 가져올 테이블 입력
2) WHERE : 원하는 튜블만 가져오도록 필터링
3) GROUP BY : 특정 컬럼을 기중으로 그룹화
4) HAVING : 그룹화 상태의 데이터를 필터링
6) ODER BY: 특정 컬럼으로 정렬
[실습]
1) 문제
SELECT CUST_ID, CUST_NAME, BIRTH)DY
FROM TB_CUST
WHERE MONY-10000
2) 결과



3. * 과 DISTINCT, AS
1) * (에스터리스크)
- SELECT 뒤에 사용되며 테이블 내의 모든 컬럼 정보를 출력
- 단,실무에서 성능이 감소되고, 특정 컬럼 정보를 확인하는데 어려워 잘 사용하지 않음
- 예) SELECT * FROM TB_[ ] ;

2) DISTINCT
- SELECT 뒤, 컬럼 앞에 사용되며 해당 컬럼 정보에 대해 중복을 제거
- 예시) SELECT DISTINCT PRD_TYPE
FROM TB_PRD ;

3) AS
- SELECT 부분에서 출력하려는 컬럼에 대해 새로운 별형 (ALIAS)를 부여할 수 있다.
- 사용시 주의사항
- 띄어쓰기 불가
- 문자로 시작해야함
- 예약서 불가
- 특수문자는 $, _, #
- 예시) SELECT CUST_ID AS C_ID
, BIRTH_DY AS 생년월일
, MONEY AS PAY_123
PROM TB_CUST ;
4. NULL
- 아직 어떤 값이 들어오지 않았음을 표현
- 테이블 특정상의 행X열 형태를 유지해야 하기 때문에 필요하다.
5. 자료형과 리터럴
- 자료형 : 데이터를 보관하는 형태 ( 예시: 문자형, 숫자형, 날짜형 )
- 리터럴: 입력되는 데이터 ( 예시: 이름, 국가 / 1,200 / 2023-01-02 )
1) 자료형 ( VARCHAR2(n), CHAR(n), NUMBER (n,m) , DATE )
(1) VARCHAR2(n)
- 문자형 값을 n 바이트까지 입력 받을 수 있는 가변형 문자열입니다
예시) VARCHAR2(10) 인 컬럼에 'abcd'를 입력할 경우

(2) CHAR(n)
- 문자형 값을 n 바이트까지 입력 받을 수 있는 고정형 문자열입니다
예시) CHAR(10) 인 컬럼에 'abcd'를 입력할 경우

(3) NUMBER (n,m)
- 숫자형 값을 n자리만큼 입력 받고 m자리만큼 소수를 입력 받습니다.
- NUMBER로 실수와 정수 모두 표현이 가능합니다.
- NUMBER 뒤에 n,m 은 생략이 가능합니다.
예시)
- NUMBER(3) 이면 999까지만 입력이 가능합니다. * 보통은그냥 NUMBER 로만 사용
- NUMBER (3.2) > 1.23 (3자리, 소수점 2자리
(4) DATE
- 날짜 값 입력
- 이외 TIMESTAMP라는 자료형도 있음.
- 둘다 비슷한 날짜형 자료형이며 TIMESTAMP가 좀 더 구체적인 시간을 저장합니다

'DATA 분석 교육 과정 (2024.02~08) > SQL' 카테고리의 다른 글
SQL_DML(INSERT, UPDATE, DELETE), DDL(CREATE, ALTER, DROP, RENAME, TRUNCATE), 시퀀스, 뷰 (0) | 2024.02.28 |
---|---|
SQL_GROUP BY, HAVING, ORDER BY (0) | 2024.02.26 |
SQL_FROM (스키마, INNER JOIN, OUTER JOIN, ANSI) (0) | 2024.02.26 |
SQL_WHERE (비교조건, 논리조건, 부정연산, NULL, IN, BETWEEN, LIKE) (0) | 2024.02.24 |
SQL _ SELECT(사칙연산, 연결연산, 내장형함수, 형변환함수, NULL함수) (0) | 2024.02.24 |