블로그 이미지
redkite

카테고리

분류 전체보기 (291)
00.SI프로젝트 산출물 (0)
00.센터 운영 문서 (0)
01.DBMS ============.. (0)
01.오라클 (117)
01.MS-SQL (15)
01.MySQL (30)
01.PostgreSql (0)
01.DB튜닝 (28)
====================.. (0)
02.SERVER ==========.. (0)
02.서버-공통 (11)
02.서버-Linux (58)
02.서버-Unix (12)
02.서버-Windows (2)
====================.. (0)
03.APPLICATION =====.. (11)
====================.. (0)
04.ETC =============.. (0)
04.보안 (5)
====================.. (0)
05.개인자료 (1)
06.캠핑관련 (0)
07.OA관련 (1)
Total
Today
Yesterday

달력

« » 2013.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

공지사항

최근에 올라온 글

# Table 이란??

 - Data가 저장되어지는 논리적 구조의 객체(그릇)
 - 행(Record)과 열(Column)이 존재
 - Table in RDB(관계형DB)에서는 자기/다른 Table
 과의 관계(Relationship)설정이 가능

 -> 일관성, 무결성을 위한 모델링을 하게되면

    분리된 Table 사이에서 연결고리를

    찾는게 어려워 지기때문에

    그것을 관계를 통해 해결

 - 모델링, 정규화 --> 데이터의 무결성


 # E-R 관계 사상 알고리즘

 - 단계 1: 정규 엔티티  <= 테이블 + 기본키
 - 단계 2: 약한 엔티티  <= 부모의 키 + 부분키
 - 단계 3: 1:1 관계타입  <= 부모의 PK -> 자식의 PK,FK
 - 단계 4: 1:N 관계타입  <= 부모의 PK -> 자식의 FK
 - 단계 5: M:N 관계타입  <= 신규테이블 + [양측의 PK -> FK]
 - 단계 6: 다치 애트리뷰트  <= 신규테이블 + [부모의 PK -> FK]

 

 

# 정규화란 중복성을 최소화하고 정보의 일관성을 보장하기 위한 관계형 데이터 베이스에서 제일 중요한 개념.


# 정규화를 하는 이유

 - 데이터의 중복성 제거
 - 데이터 모형의 단순화
 - Entity,Attribut의 누락여부
 - 데이터모형의 안전성 검증

 

 

 

 # Data 무결성

 1) 참조무결성 : 테이블간 불일치 데이터 방지하자
 2) 실체무결성 : 기본키로 Row를 구분하자
 3) 도메인무결성: 잘못된 형식을 방지하자

 # 정규화
 
 1) 1정규형
 - 데이터의 중복제거
 - 컬럼의 중복제거

 2) 2정규형
 - 기본키 전체에 의존 컬럼분류

 3) 3정규형
 - 일반컬럼 의존적 컬럼 분리


 

# 제 1정규화

 - 엔티티 내의 모든 속성은 반드시 하나의 값을 가져야 한다.

 - 여러 값을 가진 컬럼이 존재할 수 없다. 즉 반복되는 그룹이 존재해서는 안 된다. 각 행과 열에는 하나의 값만이 올수 있다.

# 제 2정규화

 - 복합키를 식별자로 가지는 경우 복합키의 일부분에만 종속적인 항목을 분류하는 작업

 - 모든키가 아닌 컬럼은 기본 키 전체에 의존적이여야 한다. 기본키의 일부분에 의존적이어서는 안 된다.

# 제3정규화
 
 - 엔티티 내의 식별자를 제외한 모든 속성은 종속될 수 없다.

 - 키가아닌 컬럼은, 다른 키가 아닌 컬럼에 의존적일어서는 안된다.

# 역정규화

 - 데이터의 중복을 통해 과도한 논리적 결합현상을 피한다.
 
 - 유도된 컬럼을 추가하여 불필요한 연산을 피한다. (예)판매금액=수량*단가

 - 하나의 테이블을 2개 이상의 테이블로 분리하여 불필요한 컬럼의 검색을 피한다.

 - 자주 사용되는 테이블의 논리적 결합을 피하기 위해 집계테이블을 생성한다.

논리적 모델링 단계에서 논해야 하는 문제는 개념적 모델링 후,

매핑룰에 의해 기초적인 논리적 모델링으로 내려 오고

논리적 모델링시에는 흔히 이야기 하는 정규화 과정을 거치게 됩니다.

즉, 차수 정의(1:1, 1:M, N:M)관계는 이미 개념적 모델링에서 처리가 된다는 것입니다.

 DA# 프로그램으로 말하면 플래너 단계에서 이루어 진다고 봅니다.

이에 대한 논리적 모델링 단계에선 관계형 데이타 베이스에 맞는 모델링을 해야 합니다.

마지막 단계에서 역정규화 작업이나.. 여타 작업을 하지만,

이것이 테이블에 대한 분리를 이야기 하지 않습니다.

정규화 단계를 많은 사람들이 알고 있듯이 테이블의 분할이라는 것은

속성에 대한 재정의 (차수의 변경등에 의한)를

통해서 속성에 대한 테이블의 분리로 이루어 질 수 있습니다.

하지만, 논리적 모델링 단계에서는 DBMS의 벤더에 종속되지 않는 모델링이 이루어 져야 하고,

 관계형 데이터베이스의 이론에 충실한 모델링이 이루어 져야 합니다.

1:1 엔티티에 대한 내용은 역정규화시에 통합이 되어야 하고, 업무분석시에 이루어지는 검색조건이나, 여타 조건에 의한 테이블의 분할이라는 것은 DBMS가 정해지고 플랫폼의 정의가 이루어진 후, 물리적 모델링 단계에서 이루어 져야 한다고 봅니다.
저는 1:1 엔티티에 대한 통합은 논리적 모델링 관계에서 무조건적으로 통합되어야 한다고 봅니다.

 

####

BCNF 정규화는
3정규형에서 BCNF 정규형이 되려면 비결정자에의한 함수종속을 제거해야 하는것을 알고계시죠..
비결정자에 의한 함수종속을 제거해서 분해된 BCNF정규형은
결과적으로 모든 속성들이 후보키로서 사용이 가능한 형태로 분해됩니다.
다시 말해 분해된 테이블의 모든 결정자들이 후보키이면
BCNF정규형이라 말합니다
제4정규화는
2정규화 된 테이블은 다대다 관계를 가질수 없다.
이건 따로 예를 안들어도 되겠죠?ㅋㅋ

 

 

#### 제약조건

 

 1. PK  : 기본키 => 유일한값 , NULL(X), Index (기본값:CI)

 2. UQ  : 유니크 => 유일한값 , NULL(1[MS]), Index (기본값:NCI)
          NULL(다[Ora])

 3. FK : 외래키 => 자기/다른 테이블의 PK, UQ를 참조

  참조하는 컬럼의 DataType과 Size가 일치

 4. CK : 범위 설정 => 0 < 값 < 100
   열거 조건 => 값 in (값1, 값2, 값3,,,,)

 5. DF : 기본값

 6. NN : Not Null => Null 값 허용 여부

 

 

Posted by redkite
, |

 

 

 

 

 

# Application

  - Database Server : MS SQL Server

    - Database Engine
# - DBMS (SSMS[DB Obejct / Query]
  SSCM[Service / Network])

#     -  Instance <-- IP (외부접속 연결대상)
 
         1차 이름      2차 이름
   ------------------------------
  * 외부 이름 : HostName    HostName\Test
  * 내부 이름 : MSSQLSERVER    Test

      --> 접속 연결 이름

   로컬 : .   or localhost
   내부 : MSSQLSERVER
   외부 : hosname or IP

      --> DB Engine Service 실행 OS Account

   - Administrator : OS 전체 관리 계정(사용자환경)
   - 일반 OS User  : 일반 사용자 계정
   - Local System  : OS 전체 관리 계정(컴퓨터환경)
   - Local Service : 일반 서비스 계정


      --> Instance 구성정보

  - System Database
     1) master : Instance 전체 구성정보
     2) model  : Database의 기본 틀 제공
     3) msdb   : 운영 업무 자동화의 관련 정보
     4) tempdb : 임시 Database (휘발성)


 
#  - Database : 업무에 따른 공간

#     - Schema : 사전 정의

#   - Object : Table

 

 

# SQL Server  관리 도구

 - SSMS : 개체관리 + 쿼리분석
 - SSCM : 서비스 + 네트워크 설정
 - SQL cmd : DOS 창에서 사용하는 SQL 명령어 도구

 

### 작업 스크립트

 

01. identity.sql

02. UNIQUEIDENTIFIER 데이터 형식.sql

03. HIERARCHYID.sql

04. Date 데이터형식.sql

05. char_varchar.sql

06. Collation.sql

07. null저장공간.sql

08. smallDateTime.sql

09. Time.sql

10. XML_DataConversion.sql

# SQL CMD 명령어

 - sqlcmd /?

C:\Users\Administrator>sqlcmd
1> use testdb
2> go
데이터베이스 컨텍스트가 'testDB'(으)로 변경되었습니다.
1> select * from t1;
2> go
id
-----------

(0개 행 적용됨)
1> insert into t1 values(10)                                                                     ==>  SQL 표준 문법
2> go

(1개 행 적용됨)
1> insert into t1 values(20)
2> insert into t1 values(30)
3> insert into t1 values(40)
4> go

(1개 행 적용됨)

1> insert into t1 values(50),(60),(70)                                                        ==> SQL 서버에서만 사용가능한 문법
2> go

(3개 행 적용됨)
1> select * from T1
2> go
id
-----------
         10
         20
         30
         40
         50
         60
         70

(7개 행 적용됨)

 

#  데이터 값 사용에 대한 확인

 

null저장공간.sql

 

 

 

### XML 데이터 타입으로 변경

 

CreateSampleTbl.sql

 

InsertBuyTbl.sql

 

InsertUserTbl.sql

select * from userTbl
where height > 180
for xml raw('열')

 

- 트리 구조로 변경

  

 

- xml 데이터 값으로 출력

 

- xml db 형태로 변환

 

 

 

 

'01.MS-SQL' 카테고리의 다른 글

[MSSQL]MS-SQL 2일차 - Object 관리  (0) 2013.04.02
[MSSQL]MS-SQL 1일차 - 테이블 / 정규화  (0) 2013.04.01
[MSSQL]MS-SQL 설치  (0) 2013.04.01
[MSSQL]데이터베이스 이동  (0) 2012.12.19
[MSSQL]Windows 64Bit And MS-SQL 32Bit  (0) 2012.12.19
Posted by redkite
, |

[MSSQL]MS-SQL 설치

01.MS-SQL / 2013. 4. 1. 11:49

1. 설치 패키지

 

 

2. 설치 전 최종 단계

 

Posted by redkite
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함