ms sql7 0 implementation n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
MS-SQL7.0 Implementation 강의 노트 PowerPoint Presentation
Download Presentation
MS-SQL7.0 Implementation 강의 노트

Loading in 2 Seconds...

play fullscreen
1 / 59

MS-SQL7.0 Implementation 강의 노트 - PowerPoint PPT Presentation


  • 143 Views
  • Uploaded on

MS-SQL7.0 Implementation 강의 노트. Written by 남현주. 1 일 history, 설치, R-DBMS Chapter 1. SQL Server 개요 Chapter 2. Transact- SQL 개요 Chapter 3. 데이터베이스 생성하기 (간략히). History (SQL Server 의 역사 ). 1970 년 IBM : 데이터베이스 질의를 위한 언어 만듬 – SEQUEL ( 구조적 질의 언어 : Structured English Query Language )

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'MS-SQL7.0 Implementation 강의 노트' - adina


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2
1 일
  • history, 설치, R-DBMS
  • Chapter 1. SQL Server개요
  • Chapter 2. Transact- SQL 개요
  • Chapter 3. 데이터베이스 생성하기 (간략히)
history sql server
History (SQL Server의역사)

1970년IBM :

데이터베이스질의를위한언어만듬–SEQUEL

(구조적질의언어 : Structured English Query Language)

Sybase 와Microsoft 가협력

v1.0을OS/2용으로 , v4.2 부터NT 서버로이식

V6.0 부터는Microsoft 독자적으로개발

 6.5, 7.0으로진보된기능들을선보임

(위저드제공, UniCode지원)

1 sql server
제1장 SQL Server 개요
  • SQL Server란

클라이언트/서버형의 관계형 데이타베이스 관리 시스템(RDBMS)이다.

  • 클라이언트/서버(Client/Server Architecture)

클라이언트 : 다른 시스템 구성요소 들에게 서비스나

자원을 요청하는 시스템 구성요소

서 버 : 서비스나 자원을 다른 시스템 구성 요소

들에 제공하는 시스템 구성요소

slide5
클라이언트/서버환경

클라이언트는서버에게자신이원하는바를요청(Request)한다. 그러면서버는그에대해처리하고클라이언트에게응답(Response)한다

slide6
데이터베이스의필요배경

SAM(Sequential Access Method)

I-SAM(Indexed SAM) 파일 출현

 PC :dBase, 호스트:네트워크 DB, 계층적DB등장

DBMS(DataBase Management System) 등장

SQL Server는

관계형데이터베이스 관리 시스템

(RDBMS:Relational Database Management System)

slide7
- 데이터에 기반한 시스템의 3가지 범주

. 파일 기반 시스템(File-based systems)

. 호스트 기반 시스템(Host_based systems)

. 클라이언트/서버 시스템(C/S systems)

  • 관계형 데이터베이스 관리 시스템(RDBMS)

구조 : 2차원 테이블

slide8
Transact_SQL

SQL Server는 구조화된 쿼리 언어의 한 버전인

Transact-SQL을 데이터베이스 쿼리 및 프로그래

밍언어로 이용한다. Transact-SQL로는 데이터를

액세스하고 관리할 수 있다.

조 작 : DB에 저장된 데이터의 입력, 수정, 삭제, 조

회 등의 작업을 SQL에 의해서 최종사용자에

게 보여지게 함

무결성 : 데이터의 일관성, 믿을 만한 데이터로 만듬

slide9
NT 서버와의관계

SQL Server는NT Server가주된플랫폼.

NT의기능들중에서SQL Server가그대로사용하는것

은다음과같다.

  • 보안체계
  • 멀트프로세서의지원
  • NT 이벤트지원
  • 서비스로서의동작
  • 성능모니터
  • Index서버
  • 백오피스와관련성
slide10
SQL Server 구성요소

- SQL Server 서비스

. MSSQLServer 서비스

. SQL Server Agent 서비스

. MS DTC

(Microsoft Distributed Transaction Coordinator)

. MS Search 서비스

slide11
- SQL Server 클라이언트 소프트웨어

. SQLServer Enterprise Manager

. SQL Server Query Analyzer

. SQL Server 관리도구와 마법사

. SQL Server 명령 프롬프트 관리 도구들

slide12
SQL Server 구조개요

- 통신 구조

. 어플리케이션

. 데이터베이스 인터페이스

. 네트워크 라이브러리

. 개방형 데이터 서비스

slide13
- 데이터 액세스 구조

. 응용 프로그램 프로그래밍 인터페이스

OLE DB

ODBC

. 데이터 객체 인터페이스

ADO

RDO

2 transact sql
제2장 Transact-SQL 개요
  • SQL Server 프로그래밍 도구

SQL Server Enterprise Management 사용방법과

SQL Server Query Analyzer 사용방법

slide15
- 세션

- 쿼리저장

- GO 배치분리자

- 판독의용이를위한여러라인코딩

- 실행(전체, 일부분)

- Parse : 분석은하지만실행하지는않음

- 단축키

- osql 유틸리티 : 명령 프롬프트에서쿼리나

스크립트 실행

slide16
Transact-SQL 구성요소
    • 데이터제어언어(Data Control Language, DCL)
    • 데이터정의언어(Data Definition Language, DDL)
    • 데이터조작언어(Data Manipulation Language, DML)
    • 변수, 연산자, 함수, 처리제어언어, 주석
slide17

문(Statement)

설명

GRANT

보안이요구되는시스템에서데이터를조작하고T-SQL 문을실행하는사용자를허가하는엔트리를생성한다.

DENY

보안이요구되는시스템에서계정의권한을거부하고사용자, 그룹, 역할로부터그들의그룹과역할멤버쉽을통해권한을상속받는것을막는다. REVOKE 이전에허가또는거부되었던권한을제거한다.

(데이터제어언어(Data Control Language, DCL))

DCL문은데이터베이스사용자혹은역할과관련된권한을변경할때사용.

slide18
(데이터정의언어(Data Definition Language, DDL))

DDL문은데이터베이스와테이블및저장프로시저같은 데이터베이스객체의생성을통해데이터베이스구조를 정의.

CREATE , ALTER, DROP 문

* 참고 : 객체의이름

Fully Qualified Names : 서버이름, 데이터베이스이 름, 소유자이름, 객체이름 대부분의객체참조는로컬서버를디폴트로하고세부분의이름을사용한다

slide19
(데이터조작언어(Data Manipulation Language, DML))

DML문은데이터베이스에서데이터를조작. 이문을 이용하여데이터변경또는정보를추출할수있음.

SELECT, INSERT, UPDATE, DELETE

* 기본적인SELECT 문

SELECT 이후에는가져올컬럼이나표현식을나열하면

된다. 모든컬럼지정시 * FROM 이후에는어떤테이블

로부터데이터를가져오는지지시한다. 여러테이블이

올수도있고, 뷰가올수도있다.WHERE 절이후에는

어떤행을가져올것인지를지시한다. 생략하면전체행을 가져온다.

slide20
예)

SELECT * FROM titles

– titles테이블의전체자료가져오기

SELECT title_id, pub_id, price, title

FROM titles

–원하는컬럼순으로가져오기

SELECT ‘책번호:’, title_id, pub_id, price, title

FROM titles

–임의의컬럼만들기

slide21
SELECT Title_no = title_id, ‘출판사번호’ = pub_id,

price, title

FROM titles –컬럼의제목바꾸기(1)

SELECT title_id as Title_no , pub_id as [출판사번호],

price, title

FROM titles –컬럼의제목바꾸기(2)

SELECT title_id Title_no , pub_id [출판사번호], price,

title

FROM titles –컬럼의제목바꾸기(3)

slide22
SELECT title_id as Title_no, pubid as ‘출판사번호’,

price, Convert(char(30), title) as ‘줄인제목’

FROM titles –자료를변형시킴(1)

SELECT title_id as Title_no, pubid as ‘출판사번호’,

price * 1.1 as ‘가격(부가세포함)’

FROM titles –자료를변형시킴(2)

* 주의 : SELECT 10/3 은?

slide23
(로컬변수)

변수는할당된값을갖는언어구성요소이다. 사용자정의로컬변수는 @로시작한다.

예) DECALRE @lvname char(20)

SET @ lvname = ‘Dodsworth’

SELECT * FROM employees

WHERE lastname = @lvname

(연산자)

치환연산자(=), 산술연산자, 단항연산자, 비교연산자, 문자열연결연산자(+), 논리연산자

slide24
(함 수)

. Rowset함수 :

T-SQL 문테이블에서사용될수있는객체를반환한다.

. 집계(Aggregate)함수 :

일련의값으로부터하나의요약된값을반환한다.

. 스칼라(Scalar)함수 :

하나의값을반환한다. (p96 ~102)

형변환함수 )

CONVERT()

slide25
연산함수)

ABS() –절대값

CEILING() –소수점이하버림

SELECT CEILING(29.9)

FLOOR() –소수점이상절상

SELECT FLOOR(29.9)

ROUND() –반올림

SELECT ROUND(29.1, 0), ROUND(29.953, 1)

slide26
문자열함수)

LTRIM() : 앞쪽의빈칸을모두삭제한다.

RTRIM() : 뒤에오는빈칸을삭제한다.

SUBSTRING() : 문자나이진문자열의일부분을돌려준 다. (한글도한글자가한문자로인식)

SELECT SUBSTRING(‘아버지나는누구예요?’, 3,6)

SELECT SUBSTRING(‘ABFZ!!!’, 1,3)

REVERSE() –문자표현식을거꾸로돌려준다.

slide27

datepart

약어

범위

year

Yy

1753-9999

quarter

Qq

1-4

month

Mm

1-12

Day of year

Dy

1-366

Day

Dd

1-31

Week

Wk

0-51

Weekday

Dw

1-7(1이일요일)

Hour

Hh

0-23

Minute

Mi

0-59

Second

Ss

0-59

millisencond

Ms

0-999

날짜함수)

GETDATE() –현재의날짜와시간

SELECT CONVERT(varchar(30), GETDATE(), 102)

DATEADD() – datepart부분에지정한숫자값을더한다.

SELECT DATEADD(DD, 100, GETDATE()) –오늘로부터 100일후는?

slide28
시스템함수)

OBJECT_ID() : 데이터베이스의오브젝트아이디번호.

OBJECT_NAME() : 데이터베이스오브젝트명

보안함수)

SUSER_NAME() : 시스템유저명을돌려준다.

slide29
* 조건에맞는행가져오기

SELECT title_id, qty

FROM sales

WHERE title_id = ‘BU1032’

* 비 교

= > < >= <= <> != !> !<

slide30
     * NULL

SELECT title_id, price

FROM titles

WHERE price IS NULL

주의)SELECT title_id, price

FROM titles

WHERE price = NULL

slide31
* 정 렬

SELECT title_id, qty

FROM sales

ORDER BY title_id, qty

주의)SELECT title_id, qty

FROM sales

ORDER BY title_id, qty DESC

slide32
     * 범 위

SELECT title_id, qty

FROM sales

WHERE qty BETWEEN 10 AND 20

(WHERE qty >= 10 AND qty <= 20)

     * 목 록

SELECT title_id, qty

FROM sales

WHERE title_id IN (‘BU1032’,’BU1111’,’MC3021’)

(WHERE title_id =‘BU1032’ OR title_id =’BU1111’

OR title_id =’MC3021’)

slide33

패턴

설명

_

정확히한문자가와야한다.

%

아무것도없는경우를포함하여어떤것이라도상관없다.

[ ]

[ ]안에있는글자들

[ ^ ]

^ 다음에이는글자는제외한나머지

문자열에서LIKE와패턴매칭

slide34

표현식

해당되는것

해당되지않는것

book_

books, booka, booky

book, booked

book%

book, books, booked

abook, atbooks, adbooked

%book%

abook, abooks, book

brook, brooks

[st]ing

sing, ting

ving, king, k, v, vin

[b-f]ing

bing, cing, ding, eing ,fing

aing, b, f, ging

M[^c]%

Mike, Many, Mickey

McDonald, McAthur, M, Mc

 * 중복된행제거–DISTINCT

SELECT DISTINCT title_id

FROM sales

( ! DISTINCT가사용되면자동으로정렬해줌 )

slide35
/* 튜닝을위한제안 */

. NOT 연산자를사용하지말것

: 색인의도움을받을수없다.

. 연산자앞에는컬럼만오게할것

. 적절한 ( )와띄어쓰기

:가독성을좋게한다.

slide36
(흐름제어언어구성요소)

BEGIN… END 블록

IF… ELSE 블록

WHILE 구조 : 지정된조건이참인동안블록을반복 적으로수행

RETURN : 쿼리혹은프로시저로부터무조건빠져나 옴. RETURN 뒤의문은실행되지않는다. 0 값이정상, 0이 아닌값이에러지시를위해사용된다.

인라인주석( -- ) : 주석문자의오른쪽텍스트는무 시된다.

블록주석(/* */)

slide37
(배치이용하기)

여러개의SQL문을모아놓고GO라는키워드로구분한 것을배치라고한다.

배치구분자GO를이용하여배치정의하기

  • 사용자정의된변수범위는배치에서제한되므로배치구분자GO 뒤에서는참조할수없다. SQL Server는GO가나타날때까지문법검사와실행을 하지않음.

규칙 : CREATE DEFAULT, CREATE TRIGGER, CREATE PROC(EDURE), CREATE RULE, CREATE VIEW는배치의처음에나타나야한다.

slide38
(스크립트사용하기)

파일로저장되는하나이상의T-SQL문이다. 즉, 배치를 여러개모은것을스크립트라고한다. 일반적으로파일로 저장해두고반복적인작업을할때사용한다.

표준확장자는 .SQL 이다.

slide39
(쿼리가처리되는과정P112~)

(캐시쿼리)

(다이나믹하게문구성하기)

(트랜잭션사용하기)

slide40
제3장 데이터베이스 생성하기
  • R-DBMS(관계형데이터베이스) 설계소개

데이터베이스란 어느 한 조직의 다수 응용 시스템들이 사용하기 위해 통합, 저장되어진 서로 관련된 데이터의 집합  “서로 관련된 데이터의 집합”

행(Row),열(Column)로 이루어진 2차원 테이블 구조

slide41

데이터베이스

데이터 모델링

어플리케이션

테이블(table)

실체(entity)

레코드셋(record set)

열(column)

속성(attribute)

필드(field)

행(row)

인스턴스(instance)

레코드(record)

용어정리>

관계형 데이터베이스는 설계시에 꼭 중요한 모델링이라는 작업이 들어간다. 설계에 들어가는 시간이 개발에 들어가는 시간보다 월등히 많이 필요하다.(70~80%) 모델링을 하는 가장 큰 이유는 데이터의 중복성을 제거하는 것이다.

slide42
* 모델링의 3단계 : 실체, 관계, 속성

실체(entity) : 하나로 묶을 수 있는 것의 실질적인 집합

예) 사원 테이블, 고객 테이블 등…

관계(Relationship) : 실체에 대한 설명이나 추가적 인 구분자. 기본키와 참조키로 정의

예) 사원과 부서의 관계, 고객과 주문의 관계 등…

속성(Attribute) : 실체나 관계에 대한 서술적 속성. 컬럼

예) 사원명, 사원번호, 주소, 전화번호 등…

slide43
* 논리적인 데이터베이스 설계

.테이블 및 해당 이름

.각 테이블의 컬럼명

.유일 값 요구, 널 허용, 컬럼에 저장될 자료형 같 은 컬럼의 특성

.각 테이블의 기본키 : 테이블의 컬럼을 유일하게 식별할 수 있는 값들을 저장하는 컬럼이다.

.테이블간의 관계 : 어떤 테이블의 행들은 다른 테이블의 하나 이상의 행에 종속적이다.이러한 테이블 사이의 종족성을 관계라 한다. 관계를 정의하기 위해서 다른 테이블의 기본 키를 참조하는 이러한 컬럼을 참조 키라 한다.

slide44
.관계에는 일대일, 일대다, 다대일, 다대다와 같은 경우가 발생할 수 있다. 참고로 다대다는 R-DB에서는 인정되지 않는 관계로 정규화를 거쳐야 한다.

(정 규 화)

1.제 1정규화(1NF)

규칙 : 여러 값을 가진 컬럼이 존재할 수 없다. 반 복되는 그룹이 존재해서는 안된다. 각 행 과 열에는 오직 한 값만이 존재해야 한다.

slide45

사번

사번

사번

취미

사원명

사원명

취미

1

1

1

여행

홍길동

홍길동

여행

골프

1

2

사미자

골프

2

사미자

등산

2

등산

1번 사원은 두 가지 취미를 갖고 있다. 이 그룹은 제1

정규화의 대상이 된다.

다음과 같이 정규화 한다.

slide46

사번

프로젝트번호

부서

프로젝트 역할

고과율

1

A

전산

팀장

A

1

B

전산

조원

C

1

C

전산

부팀장

B

2

C

경리

팀장

A

3

C

기획

팀장

A

2.제 2정규화(2NF)

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

slide47

사번

사번

프로젝트

번호

부서

프로젝트

역할

고과율

1

전산

1

A

팀장

A

2

경리

1

B

조원

C

3

기획

1

C

부팀장

B

2

C

팀장

A

3

C

팀장

A

위의 테이블에서 기본키는 (사번+프로젝트 번호)이다. 그런데 부서 컬럼은 사번에 의존적이다. 즉, 부서컬럼은 (사번+프로젝트 번호)에 의존적이지 않고 사번에 의존적이므로 아래와 같이 제 2정규화를 거쳐야 한다.

slide48

사번

프로젝트번호

프로젝트 역할

고과율

1

A

팀장

A

1

B

조원

C

1

C

부팀장

B

2

C

팀장

A

3

C

팀장

A

3.제 3정규화(3NF)

규칙: 키가 아닌 컬럼은, 다른 키가 아닌 컬럼에 의 존적이어서는 안된다.

slide49

프로젝트 역할

사번

프로젝트번호

고과율

프로젝트 역할

1

팀장

A

A

팀장

1

조원

B

C

조원

1

부팀장

C

B

부팀장

2

C

팀장

3

C

팀장

고과율 컬럼은 프로젝트 역할에 따라 변하고 있음을 볼 수 있다. 즉, 고과율은 키가 아닌, 프로젝트 역할 컬럼에 의존적이다. 아래와 같이 정규화한다.

slide50

학번

이름

과목번호

과목명

1

최철호

K

국어

2

이상진

K

국어

3

김철민

K

국어

3

김철민

M

수학

3

김철민

E

영어

2

이상진

H

역사

2

이상진

P

정치

1

최철호

P

정치

4.제 4정규화(4NF)

규칙 : 3NF 테이블은 의존적인 다대다 관계를 가질 수 없다.

slide51

학번

과목번호

학번

이름

과목번호

과목명

K

1

1

K

최철호

국어

2

M

2

이상진

수학

K

3

3

E

영어

김철민

K

3

H

M

역사

3

P

정치

E

2

H

2

P

1

P

위의 테이블은 학생과 과복 간의 관계가 다 : 다 관계

이다. 이를 해결하면 다음과 같다.

<학생> <수강신청> <과목>

slide52
5. 비 정규화

정규화를 하는 것은 되도록 중복된 데이터를 제거해서 성능 향상에 도움을 주는 것에 초점을 두고 있으나, 자주 JOIN을 사용하면 차라리 테이블을 다시 합치는 것이 나을 수도 있기 때문에 이를 고려한 방법이 비 정규화이다. 뿐만 아니라 파생된 컬럼을 테이블에 하나의 컬럼으로 저장하는 경우나, 한 테이블에서 자주 쓰는 행과 그렇지 않은 행을 분리하여 테이블을 별도로 관리하는 것 또한 비 정규화에 속한다.

slide53
SQL Server 데이터베이스소개

(데이터가어떻게저장되는가)

slide54
(SQL Server 데이터베이스파일)

일차데이터파일 (.mdf)

이차데이터파일 (.ndf)

로그파일 (.ldf)

* 데이트베이스의아키텍처:

데이터를저장하는데이터파일은그내부에여러개의익스텐트단위구조를가지고있고, 다시익스텐트는 8개의연속된페이지를기본단위로한다.

(SQL Server에서Input/Output단위는page이다)

slide55
페이지가가들차게되면다음페이지에저장된다. 그러나이때에하나의행은여러페이지에동시에저장되어질수없기때문에익스텐트가가득차게되면새로운익스텐트를할당받게된다. 즉 64KB를더사용할수있게된다.

(트랜잭션로그의작동방법)

slide56
트랜잭션

여러개의작업이하나의작업처럼전부처

리되거나아니면전부처리가 안되도록

(All or Nothing) 하는일의최소단위

* 디스크의성능을높이기위해서캐쉬 사용

캐쉬는디스크의내용중일부를메모리에 저장해 두는원리나메모리를뜻함.

장점: 빠른수행속도

단점: 정전시데이터가하드디스크에

저장하지못함

slide57
SQL Server는트랜잭션처리를위해서잠금과로그사용

* 데이터변경작업

로그에먼저기록 ->트랜잭션 완료 -> 로그를메모리에서디스크로기록

  • 데이터베이스생성및삭제하기

* 생성하기

CREATE DATABASE mydb1 만입력해도데이터베이스는생성된다. 모두기본설정값을그대로반영한것이다.

slide58

CREATE DATABASE mydb2 -- 데이터베이스명은mydb2이다

ON -- 데이터를저장하는공간이다.

( NAME = mydb2data -- 논리적파일명을지정한다.

, FILENAME = ‘c:\mssql7\data\mydb2.mdf’-- 물리적파일명을지정한다.

, SIZE = 10MB --크기는MB단위

, MAXSIZE = 50MB -- 최대몇MB까지자동적으로늘릴것인지지정한다.

, FILEGROWTH = 5% -- 늘어날때 5% 단위로늘어나도록지정한다.

)

LOG ON

( NAME = mydb2log

, FILENAME = ‘c:\mssql7\data\mydb2.ldf’

, SIZE = 5MB

, MAXSIZE = 25MB

, FILEGROWTH = 5MB -- 늘어날때MB 단위로늘어나도록지정한다.

)

예)

slide59
- 삭제하기

DROP DATABASE database_name [,…n]