'MsSQL' 카테고리의 글 목록 :: 배울게 너무 많아

TRANSACT-SQL (T-SQL)


T-SQL은 표준 SQL의 부분집합


T-SQL?

표준을 따르면서 나름대로 자신을 확장시켜 좀 더 세세하게 여러 정보를 다룰 수 있게한 확장된 SQL


SQL?

Structured Query Language

- 쿼리문으로 DB에 저장된 데이터를 조회, 입력, 수정, 삭제하는 조작

- TABLE과 같은 다양한 객체를 생성, 제어하는 역할을 함


SQL 종류

1) DCL

- Data Control Language

- 데이터 제어

- DB의 테이블, 뷰, 프로시저 같은 오브젝트에 대한 권한 설정에 관련


2) DDL

- Data Definition Language

- 데이터 정의어

- 다양한 오브젝트를 정의


3) DML

- Data Manipulation Language

- 테이블 데이터 조회, 수정, 삭제, 삽입 등

'MsSQL' 카테고리의 다른 글

[DB 구축] 데이터 모델링 - 세부사항2  (0) 2017.09.22
[DB 구축] 데이터모델링 - 세부사항1  (0) 2017.09.22
[DB구축] 데이터모델링  (0) 2017.09.22
[SQL Server]에서 제공하는 데이터베이스  (0) 2017.09.22
DB 개요!!!  (0) 2017.09.13

계획 - 분석 - 설계 - 구축


4. 물리적 모델

- 목적

: 개발에 사용할 DB를 선정하여 특정 DB로 구현될 수 있도록 구체적인 설계하는 과정

: 산출물은 테이블 명세

: entity를 table로 변환

: ERD의 entity - 하나의 테이블 // 각 entity의 attribute - 테이블의 field



1) 일대일 관계

2) 일대다 관계

3) 다대다관계


'MsSQL' 카테고리의 다른 글

[DB 다루기] TRANSACT-SQL  (0) 2017.09.22
[DB 구축] 데이터모델링 - 세부사항1  (0) 2017.09.22
[DB구축] 데이터모델링  (0) 2017.09.22
[SQL Server]에서 제공하는 데이터베이스  (0) 2017.09.22
DB 개요!!!  (0) 2017.09.13

계획 - 분석 - 설계 - 구축



1. 요구 사항 분석 (계획)

: 기존의 문서를 조사, 인터뷰나 설문 조사 등을 통해서 얻은 내용으로 사용자의 요구 사항을 간단하게 기술

: 요구 사항 분석 결과물로 요구 사항 명세서 또는 업무 흐름도가 구해짐


2. 논리적 설계 단계 (분석)

: 요구 사항 분석의 결과물을 근거로 데이터 모델링을 해야함.

: 사용자들의 요구사항 명세로부터 개념적 스키마가 만들어짐

: 특정 DB에 구애되지 않고 골격을 구축하는 작업 단계

: 대표적 모델링 기법 = 개체 관계 모델


3. 개체 관계 모델(분석, ERD)

: 개체 관계 모델(Entity Relational Diagram)의 약어로 ERD는 DB의 전체 구조를 쉽게 나타낼 수 있습니다.

: 사용자와 함께 업무를 분석하고 검토할 때도 이용

: Entity 끼리의 관계를 이해하기위해 정해진 표기법에 따라 그림으로 표시


: ERD를 발전시켜 요즘은 EER(Enhanced Entity Relationship) 모델이 DB 설계 과정에 널리 사용되고 있습니다.

: 기본적 구문으로 Entity, Relationship, Attribute가 있고 기타 구문으로는 Cardinality 비율, 참여 제약 조건 등이 있다.


1) 엔티티 Entity

: Entity는 현실세계를 표현할 수 있는 항목.

: 레코드(Record)와 같은 의미

: 관리 대상이 되는 독립적 특성을 갖는 사물이나 사건, 개념을 말함

: 실존하거나 의미 있는 정보 단위

: 요구 사항 명세서에서 명사, ERD에서 사각형.

: 하나의 개체 다누이 별로 DB에서 관리함


: Entity는 추후 물리적 모델링 과정에서 table이 됨


2) 애트리뷰트 Attribute

: 성질이나 상태.

: Entity가 가질 수 있는 특성

: Data의 가장 작은 논리적인 단위 (=필드)

: 유일한 값을 가지는 attribute = 기본 키 (Primary Key)


: 추후 물리적 모델링 과정에서 column이 됨.


3) 관계 Relationship

: entity 간의 연관성을 나타냄

: 요구 사항 명세서에서 동사형으로 표현

: 관계가 있는 Entity를 실선으로 연결, 마름모 사각형 안에 관계를 표시


- 관계의 차수 degree

 : 관계로 연결된 entity 개수

- 카디날리티 비율 Cardinality Ratio 

 : entity를 이루는 각 값이 관계에 참여할 수 있는 수

 : 흔히 1:1, 1:N, M:N으로 구분


4) 릴레이션 구조

: 데이터들을 표로 표현한 것


- 튜플(Tuple)

: 릴레이션을 구성하는 각각의 행

: 파일 구조에서 레코드


- 도메인(Domain)

: 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자(atomic) 값들의 집합


- 차수 / 카디널리티

: 차수는 attribute의 개수

: cardinality는 튜플의 개수


5) 키(key)의 개념 및 종류

: 튜플(Tuple)을 찾거나 순서대로 정렬할 때 기준이 되는 애트리뷰트(Attribute)


 후보 키(Candidate Key)

 - 릴레이션을 구성하는 속성들 중 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합.

 - 기본 키로 사용할 수 있는 속성들

 - 릴레이션에 있는 모든 튜플에 대해 유일성과 최소성을 만족시켜야 함

 기본 키(Primary Key)

 - 후보 키 중에서 선택한 키(Main Key)

 - 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성

 - Null 값을 가질 수 없음

 - 기본 키로 정의된 속성에서는 동일한 값이 중복되어 저장될 수 없음

 대체 키(Alternate Key)

 - 후보 키가 둘 이상일 때 기본 키를 제외한 나머지 후보 키들을 말함

 - =보조 키

 슈퍼 키(Super Key)

 - 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족 못 시킴

 외래 키(Foreign Key)

 - 관계를 맺고 있는 릴레이션 1,2에서 1이 참조하고 있는 2의 기본키와 같은 1 릴레이션의 속성

 - 외래키로 지정되면 참조테이블의 기본 키에 없는 값은 입력할 수 없음


6) 무결성

: 개체 무결성은 릴레이션에서 튜플을 구분하기 위해서 기본 키를 구성하는 속성은 널 값이나 중복값을 가질 수 없어야 한다는 조건을 의미.


'MsSQL' 카테고리의 다른 글

[DB 다루기] TRANSACT-SQL  (0) 2017.09.22
[DB 구축] 데이터 모델링 - 세부사항2  (0) 2017.09.22
[DB구축] 데이터모델링  (0) 2017.09.22
[SQL Server]에서 제공하는 데이터베이스  (0) 2017.09.22
DB 개요!!!  (0) 2017.09.13

데이터모델링


- 데이터 모델링?

: DB를 새롭게 구축하기 위한 준비 과정

: 사용자의 요구를 듣고 사용자 관점을 분석하고 추상화하여 문서화하는 과정


데이터 모델링 = 현실을 DBMS의 DB Entity로 옮기기 위한 과정


설계과정은 계획 - 분석 - 설계 - 구축 입니다.


1. 계획

= 요구 사항 분석(DATA)

1) 세부 추진일정 수립

2) 인터뷰 계획

3) 자료수집 계획


2. 분석

= 개념적 데이터 모델링(Entity Relational Diagram)

1) 장표와 인터뷰 자료 등 수집된 자료를 바탕으로 DATA 분석

2) 개념적 데이터 모델링 및 ERD 작성


3. 설계

= 물리적 데이터베이스 설계

1) ERD를 기반으로 테이블 설계서 작성, 물리적 구조 설계

2) 화면 설계서 작성


4. 구축

= 데이터베이스에 테이블 생성

1) 테이블 설계서를 기반으로 테이블 생성

2) 화면 설계서를 기반으로 프로그램 코딩






'MsSQL' 카테고리의 다른 글

[DB 다루기] TRANSACT-SQL  (0) 2017.09.22
[DB 구축] 데이터 모델링 - 세부사항2  (0) 2017.09.22
[DB 구축] 데이터모델링 - 세부사항1  (0) 2017.09.22
[SQL Server]에서 제공하는 데이터베이스  (0) 2017.09.22
DB 개요!!!  (0) 2017.09.13

SQL Server에서 제공하는 데이터베이스



SQL Server의 DB는 크게 시스템DB와 사용자 DB로 나눕니다.

여기에서는 시스템 DB를 살펴보겠습니다.



- 시스템 DB?

: SQL Server가 자체적으로 사용한느 데이터베이스.

: 시스템 운영, 관리하기 위한 데이터 + 추가적으로 사용자 데이터베이스를 관리하기 위한 모든 데이터

: 시스템 DB는 아래와 같이 3가지로 나눔!




1. master

: SQL Server가 자체 시스템을 유지 및 관리하기 위한 기본적인 내용을 저장하고 있음

: 로그인 사용자 계정, 변경 가능한 각종 설정 값과 시스템 오류 메시지를 관리

: 개발자들이 만든 사용자 DB도 여기서 관리



2. model

: 개발자들이 새로운 사용자 DB를 만들 때 원본 역할

: SQL Server에서 새로운 사용자 DB를 만들면 내부적으로 model DB를 복사해서 만듦

: model DB에 있는 모든 오브젝트와 설정 값은 새로 만들어지는 사용자 DB에 그대로 있음

: 사용자 DB는 최소한 model DB보다 용량이 더 커야함


3. msdb

: msdb DB는 경고 및 작업을 예약, 운영자를 기록하기 위해 SQL Server 에이전트에서 사용됨


4. tempdb

: SQL Server에서 임시적으로 사용하는 메모리의 역할

: DB 작업 중에 정렬이나 조인, 임시적으로 만들어서 사용하는 것도 저장됨

: SQL Server를 업그레이드할 때나 기타 환경 설정이 변경될 때에도 내부적으로 사용

: 동시 사용자 수와 처리하는 데이터 양에 따라 충분한 크기 줄 것

'MsSQL' 카테고리의 다른 글

[DB 다루기] TRANSACT-SQL  (0) 2017.09.22
[DB 구축] 데이터 모델링 - 세부사항2  (0) 2017.09.22
[DB 구축] 데이터모델링 - 세부사항1  (0) 2017.09.22
[DB구축] 데이터모델링  (0) 2017.09.22
DB 개요!!!  (0) 2017.09.13


1. DB

- 유용한 데이터의 집합


2. DBMS

- 방대한 데이터 편리하게 저장, 효율적으로 관리하게 해주는 시스템 소프트웨어

- DB관리시스템


3. 관계형DB

- 2차원 테이블

- 테이블은 표처럼 볼 수 있도록 로우, 칼럼으로 구성

- 로우 =    레코드    -> 부서명

- 열    =    속성       -> 부서번호, 부서명, 지역



4. 데이터 타입

- 칼럼이나 변수에 들어가는 값이 어떤 종류를 가지는지, 최대 저장 가능한 데이터의 크기

- 부서번호는 숫자, 부서명/지역명는 문자


1) 정수

- 저장할 숫자 크기보다 너무 큰 자료형 잡으면 공간 낭비.


2) 날짜 및 시간


3) 고정 문자열, 가변 문자열


5. 제약 조건


1) NOT NULL 제약조건


2) 기본 키 제약조건


3) 외래 키 제약조건

-> 다른 테이블과 관계를 맺을 수 있는데 사실 실무에서는 잘 쓰이지 않음

-> 원칙은 쓰는 게 좋긴한데 엄

-> 나중에 테이블을 삭제할 때 우선적으로 삭제해야할 테이블이 생기기 때문에 유지보수에 불편해서!

+ Recent posts