MixedCode

4일차
4.1 모델 & 데이터 모델링 & 데이터 베이스

4.2 Microsoft SQL Server 기초
4.3 Entity Framework(EF) ORM 사용법
4.4 EF 기반 ASP.NET MVC DB Programming

4.2.1 MS SQL 2014 Server 환경 이해하기
1) Database Clients vs Database Server Services
Oracle,MSSQL,MYSQL 등과 같은 대부분의 RDBMS 시스템은 서버 O/S에 설치되는 전문적인 데이터 관리 서비스 Software 프로그램으로 데이터를 영구적이고 안정적으로 보관하는데 주요한 목적을 두고 있습니다.

RDBMS를 대상으로 데이터를 저장하거나 조회하는 클라이언트의 종류에는 여러분이 개발한 웹 어플리케이션이 될 수도 있으며 사용자 컴퓨터에 설치되는 각종 클라이언트 어플리케이션 또는 각종 서버 어플리케이션이 운영되는 또 다른 서버가 될 수도 있습니다.

아래 MS SQL SERVER 아키텍쳐 구성도는  실제 MS SQL서버의 내부 구성 서비스들의 구조와 MS SQL 서버를 사용하는 각종 클라이언트 환경을 보여줍니다.
 

[그림4-8] SQL Server 서비스 환경 구성도

서버에 보관된 데이터를 일반 사용자를 위해 조회해서 확인하거나 가시적인 데이터 관리를 위해서 개발자들이 직접 User Friendly한 방식으로 어플리케이션을 개발하여 제공 할 수도 있고 전문적인 DB 클라이언트 툴을 사용해 데이터를 직접적으로 관리할 수도 있습니다.

MS SQL서버의 경우 개발자들을 위한 Microsoft SQL Server Management Studio 란 전문적인 DB
서버 관리 클라이언트 툴을 MS SQL 2014 Server설치 시 함께 제공하거나 별도의 설치파일로
제공하고 있습니다.


2) Microsoft SQL Server Management Studio 환경 확인하기
A. Microsoft SQL Server Management Studio(SSMS) 설치여부 확인
Microsoft SQL Server 2014 Express를 설치파일의 종류에 따라 크게 SQL Server 서비스 만
설치될 수 있으며 Microsoft SQL Server Management Studio(SSMS) Client툴이 함께 설치될 수도 있습니다.
아래 비교표를 확인하여 반드시 SSMS가 포함된 버전을 설치하셔야합니다.
O/S 유형 설치파일명 제공기능
32BIT Express 32BIT\SQLEXPR_x86_KOR.exe SSMS 미포함
64BIT Express 64BIT\SQLEXPR_x64_KOR.exe SSMS 미포함
32BIT ExpressAdv 32BIT\SQLEXPRADV_x86_KOR.exe SSMS 포함
64BIT ExpressAdv 64BIT\SQLEXPRADV_x64_KOR.exe SSMS 포함
32BIT ExpressAndTools 32BIT\SQLEXPRWT_x86_KOR.exe SSMS 포함(권장)
64BIT ExpressAndTools 64BIT\SQLEXPRWT_x64_KOR.exe SSMS 포함(권장)
32BIT MgmtStudio 32BIT\SQLManagementStudio_x86_KOR.exe SSMS만 제공
64BIT MgmtStudio 64BIT\SQLManagementStudio_x64_KOR.exe SSMS만 제공

윈도우 시작> 프로그램 목록에서 MS SQL Server 2014 메뉴 하위에 SQL Server Management Studio 메뉴가 존재하면 SSMS가 설치 된 것입니다.
설치가 안되어 있다면 상기 설치 파일 목록에서 SQLManagementStudio_x86_KOR.exe 파일을 다운받아 SSMS만 별도로 설치하시면 됩니다.
Link)SQL Server 2014 Express 설치 파일 다운 링크 URL
https://www.microsoft.com/ko-kr/download/details.aspx?id=42299

B. Microsoft SQL Server 보안 서버 인증방식 설정 확인하기
윈도우 시작> 프로그램 목록에서 MS SQL Server 2014 메뉴 하위에 SQL Server Management Studio 메뉴를  클릭하여 SSMS를 시작합니다.

연결버튼을 클릭하여 독자 여러분 개발 컴퓨터에 설치된 SQL Server의 데이터베이스 엔진서비스로 현재 사용자중인 윈도우 계정을 이용해 SQL 서버에 접속합니다.
 

[그림4-9] SQL Server 연결하기

좌측 메뉴의 연결된 SQL서버 최상단 노드에 오른쪽마우스 클릭 속성을 선택합니다.
 

[그림4-10] SQL SERVER 속성 확인하기

서버 속성 팝업에 좌측 메뉴 보안탭>서버인증방식이 반드시 SQL Server 및 윈도우 인증모드로 선택되어 있어야 하며 그렇지 않으면 SQL Server 및 윈도우 인증모드로 변경 후 확인해주시기 바랍니다.
 

[그림4-11]  SQL SERVER 속성 서버인증모드 확인하기

Tip) SQL 서버 인증에 대해
SQL Sever 서비스에 접속하기 위해서는 반드시 사용자 인증과정을 통해야 SQL Server 및 하위의 각종 Database 와 Table등에 접속하여 Data처리작업이 가능합니다.
다음은 SQL Server에서 제공되는 두 가지 인증방식에 대한 설명입니다.
SQL 서버 인증 설명
Windows 인증방식 SQL Server가 설치된 윈도우 컴퓨터 계정을 이용해 사용자 인증하는 모드
SQL Server 인증방식 SQL Server 자체에서 만든 SQL 사용자계정을 이용해 인증하는 모드
대부분의 Application 프로그램은 SQL서버를 접근하기 위해서는 별도 SQL 서버 사용자 계정을 만들고 해당 계정을 이용해 SQL Server인증방식 통해 Database에 접속합니다.

SQL 서버 인증모드는 반드시 SQL Server 및 윈도우 인증모드로 선택되어 있어야 SQL인증 계정을 이용해 Application 프로그램에서 접속 시 SQL서버 접속이 가능합니다.

C. Microsoft SQL Server Management Studio 옵션 설정 확인하기
SSMS 상단 도구메뉴> 옵션메뉴를 클릭하면 각종 SSMS 툴의 환경설정을 할수 있습니다.
옵션 팝업 좌측 메뉴 디자이너 노드를 클릭하고 우측 테이블을 다시 만들어야 하는 변경 내용 저장 안함(S) 체크박스를 반드시 선택해제 후 확인버튼을 클릭합니다.
해당 기능이 체크되어 있으면 Database에 Table을 최초 생성 이후 그 구조를 재 변경할 수 없기 떄문에 개발에 불편함을 초래할수 있습니다.


[그림4-12] SSMP 옵션 디자이너 설정하기


윈도우 프로그램 목록이나 윈도우 검색에서 Microsoft SQL Server Management Studio라는 SQL Database Client 툴을 오픈합니다.


SQL 연결 서버 정보를 입력합니다.
-서버유형: 데이터베이스 엔진
-서버이름: PC이름(호스트명) 또는 localhost 또는 설치시 SQL 인스턴스명 또는 점하나
-인증방식: 윈도우인증
확인을 눌러 로컬 SQL서버에 접속합니다.


1.데이베이스 만들기

1)데이터베이스 폴더에 오른쪽 마우스 클릭 새데이터베이스를 클릭합니다.


2.신규데이터베이스 팝업창에 아래 정보를 입력합니다.
-데이터베이스명: 데이터베이스명을 영문으로 입력합니다.( ex:EddyHomePage)
-Owner: default
-Database Files 경로를 확인 또는 변경합니다.
ㄴMDF 파일: 실제 데이터가 저장되는 물리적파일입니다.
ㄴ.LDF 파일: Transaction Log 정보가 저장되는 물리적 파일입니다.
확인 버튼을 클릭하여 데이터베이스를 생성 완료합니다.

Tip) 데이터베이스 파일 유형
데이터베이스는 동일 비즈니스의 데이터들을  체계적으로 관리하는 기본 단위입니다.
주로 물리적인 파일 형태로 데이터가 관리되며 SQL Server.mdf .ldf 파일로 관리됩니다.


  • .MDF 파일: 실제 데이터가 저장되는 물리적 파일입니다.

  • .LDF 파일: Transaction Log 정보가 저장되는 물리적 파일입니다.


2.테이블만들기

1)신규 생성 데이터 베이스의 트리를 확장합니다.


2)테이블 폴더에 오른쪽 마우스 클릭하여 신규테이블를 클릭합니다.


3)물리모델 설계정보를 참조하여 컬럼 및 컬럼의 데이터타입을 설정한후 PK를 지정합니다.

  • 물리모델의 Articles 테이블의 컬럼을 하나씩 추가하고 데이터 형식을 지정합니다.
    게시글번호 컬럼은 게시글 테이블의 기본키(Primary Key=PK)입니다.

  • 기본키 설정은 관련 컬럼을 선택하고 상단 좌측 아이콘 메뉴중 열쇠()를 선택하거나 해제합니다.

  • 기본키인 게시글 번호 컬럼은 게시글이 등록되는 시점에서 자동으로 숫자형 데이터가 생성되는 Identity 방식을 사용하여 자동 채번합니다.
    ID
    자동채번 설정은 해당 컬럼의 데이터 형이 숫자형(Int) 이여야하며 해당 컬럼 선택 후 하단 열속성 탭의 ID사양 사용여부를 예로 선택하고 자동 증가값 및 초기값을 설정합니다.

  • 컬럼들의 Null 허용여부 를 선택합니다. Null이란 해당 컬럼에 데이터가 저장되어 있지 않은 상태를 말하며 Null 허용이란 말은 해당 컬럼에 빈값이 입력되는 것을 허용한다는 의미입니다.
    Null
    을 허용하지 않은 컬럼은 반드시 데이터 값이
    입력되어야함을 의미합니다. 문자형 컬럼의 경우 빈 문자열값(공백)은 데이터가 입력 된 것으로 인식합니다.

  • 모든 컬럼을 생성 후 화면상단의 저장 아이콘 또는 File메뉴의 저장을 클릭합니다.

     

    Tip) SQL SERVER 컬럼 주요 데이터 형식들

데이터 형식

SQL Server
Data Types

데이터 길이

 

비트

bit

1 or 0 or null

 

기본 문자형
(
기본 1Byte)

char

Char(8000)

고정길이 문자형

varchar

Varchar(8000)

가변길이 문자형

text

2G Text

 

유니코드 문자형(기본 2Byte)

nchar

NChar(4000)

가변길이형

nvarchar

NVarchar(4000)

고정길이형

ntext

2G Unicode Text

 

정수형 숫자형

tinyint

0 ~ 255

1Byte

smallint

-2^15(-32,768) ~ 2^15-1(32,767)

2Byte

int

-2^31(-2,147,483,648) ~ 2^31-1(2,147,483,647)

4Byte

bigint

-2^63(-9,223,372,036,854,775,808) ~ 2^63-1(9,223,372,036,854,775,807)

8Byte

실수형 숫자형

decimal(p,s)

고정형 실수 정확한 숫자형 표기가

가능하며 주로 금융권에서 사용

5-17 bytes

numeric(p,s)

Decimal과 용처가 동일함.

5-17 bytes

float(n)

부동형 실수-근사치 사용,소수점 이하 반올림

4-8 bytes

real

부동형 실수-근사치사용

4 bytes

날짜형

datetime

2016-10-12 13:10:20 111

8 bytes

smalldatetime

2016-10-12 13:10:20

4 bytes

Date

2016-10-12

3 bytes

기타

Binary

8000 byte

 

image

2G

 


Tip) Bit vs Byte

Bit(비트)1 또는 0 값을 컴퓨터에 저장할 수 있는 단위 또는 크기를 말합니다.
실제 컴퓨터는 인간의 문자나 언어를 인식하지는 못하고 0 또는 1만을 인식하는 매체입니다
.
1Byte
“01011111” 와 같이 8Bit로 구성되며 1Byte“A“ 와 같이 알파벳 한 글자를 표현할수 있습니다
.
영문과 숫자는 보통 한 글자를 표현하는데 1Byte공간을 사용하며 한글/중문/일어와 같은 유니코드 문자는 한 글자를 저장하기 위해서는 2Byte공간이 필요합니다. 즉 한글 한 글자를 표현하기 위해서는 총16Bit가 필요한 것입니다.

Tip) 고정길이 문자형(Char) 과 가변길이(Varchar) 문자형

고정길이 문자형인 Char(N)Char(5) 1Byte5개 길이만큼 영역을 고정적으로 차지한다는 의미이며 예를 Char(5)로 지정한 컬럼에 데이터가 “A” 만 입력해도 실제 저장공간은 “A    와 같이 빈값으로 4Byte길이의 공간을 차지합니다.

가변길이 문자형인 Varchar(N)형은 Varchar(5) 컬럼에 “A” 값만을 입력해도 “A” 와 같이 실제 입력된 길이만큼만 공간을 차지하고 설정된 4Byte공간의 메모리는 반환되는 저장방식을 사용합니다.

Tip) 일반 문자형 과 유니코드형(N~) 문자형

일반 문자형 데이터 타입인 Char(1),VARCHAR(1),TEXT() 들은 한 글자 자리수를 저정하기 위해 1Byte 공간을 사용하지만 NChar(1),NVARCHAR(2),NText() 와 같은 유니코드 문자형은 한 글자 자리수를 표현하기 위해 기본 2Byte를 사용하여 저장처리합니다.


-화면상단의 저장 아이콘 또는 File메뉴의 저장을 클릭합니다.
-테이블명을 입력 팝업에 테이블명을 입력합니다. ex) BoardArticles




3.SQL인증아이디 만들기

향후 수강생 여러분들이 만들 ASP.NET MVC 웹 어플리케이션에서 SQL Server에 접속하기 위해서는 DB 접속 인증 과정을 통한 SQL Server연결 및 연결 이후 관련 데이터 베이스 및 테이블에 접근하려면 사용권한이 사전에 설정되어 있어야 합니다.

또한 Application에서 등록한 데이터를 SSMS와 같은 전문 DB Client툴로 데이터를 확인하거나 개발자로서 데이터를 직접 관리하기 위해서는 기본적인 데이터 질의언어인 SQL(Structured Query Language) 사용법을 숙지 하여야 합니다.



1)보안 폴더에 트리를 확장하고 로그인 폴더에 오른쪽 마우스 클릭 새로그인을 클릭합니다.


2)로그인 신규 팝업창의 일반탭에서  아래 관련정보를 입력합니다.
-로그인이름: SQL 서버접속 SQL인증아이디 EX) test
-인증방식 선택 : SQL Server인증 선택
-암호/암호확인 입력
-암호정책 강제적용 체크 해제
-기본데이터베이스  : 신규생성 DB선택


3)로그인-신규 사용자 맵핑 탭으로 이동하여 아래 정보를 추가 선택처리한다.
-이 로그인으로 맵핑된 사용자: 신규 데이터 베이스 체크함
-데이터 베이스 역할 멤버자격: 신규데이터베이스명
ㄴ db_owner 체크박스 체크

확인 버튼을 클릭하여 SQL 서버 접속 사용자아이디를 생성완료한다.


4.쿼리 질의문(SQL= Structed Query Language) 기초 사용법
DB Server Client 툴 및 각종 Application 들은 SQL(Structured Query Language= 구조화된 질의 언어)을 이용해 DB Server에 다양한 질의(쿼리=Query)를 통해 데이터 처리를 요청하며 그 결과물로 데이터를 전달받습니다.

간단한 질의(Query)의 종류는 크게 아래와 같습니다.
질의 종류 Query SQL 예시
입력 Insert Insert Into Members(MemberID,MemberPWD)Values(‘Eddy’,’1234’)
수정 Update Update Members Set MemberPWD=’2222’ Where MemberID=’Eddy’
삭제 Delete Delete From Members Where MemberID=’Eddy’
조회 Select Select * From Members Where MemberID=’Eddy’

A.SSMP를 가동하고 상단 메뉴중 새쿼리 이미지 아이콘을 클릭합니다.
 
[그림4-28] 신규 쿼리  추가하기

B. 상단 왼쪽 메뉴영역에 Database 콤보박스를 이용해 질의문을 적용할 데이터베이스를 선택한 후 고객 테이블을 조회합니다.
 
[그림4-29] SQL Select 조회구문 실행하기
조회 쿼리를 입력 후 상단 메뉴중 쿼리>실행을 클릭하거나 아이콘중 빨간색 느낌표 아이콘을 클릭하여 쿼리를 실행시킵니다.
고객 테이블에 등록된 데이터가 없어 비어있는 결과가 조회됩니다.

C. 고객 정보를 직접 Insert쿼리를 이용해 등록해 봅니다.
 
[그림4-30] SQL Insert 입력구문 실행하기
쿼리 구문을 마우스로 드래그하여 해당 Insert쿼리만 선택 후 쿼리를 실행시킵니다.
3개의 데이터가 등록 완료되었다는 메시지가 하단 메시지 창에 나타납니다.

D. 고객 테이블에 대해 전체 조회 및 조건 조회 쿼리를 실행해봅니다.

[그림4-31] SQL Select 조건 조회 구문 실행하기
쿼리 구문 3개를 마우스로 드래그 하여 선택 후 실행버튼을 클릭합니다.
세개의 결과 Set이 하단 결과탭에 나타납니다.

E. 특정 고객정보를 선택하여 그 값을 수정합니다.
 
[그림4-32] SQL Update 수정구문 실행하기


F. 특정 조건의 고객정보를 삭제합니다.
 
[그림4-33] SQL Delete 삭제구문 실행하기
쿼리 구문을 통한 데이터의 조회,등록,수정,삭제 처리를 실습해 보았습니다.
일반적인 데이터 베이스 프로그래밍은 어플리케이션에서 작성된 쿼리구문을 DB Server에 전달하여 전달된 쿼리가 DB 서버에서 실행되거나 미리 작성된 SQL구문을 DB서버에 저장해둔 후 DB서버에 저장된 쿼리를 어플리케이션에서 호출하여 그 실행된 결과물이 어플리케이션에 반환되는 프로세스로 진행됩니다.

다음 장에서 다룰 ORM DB프로그래밍은 어플리케이션의 ORM Framework이 자동으로 쿼리구문을 생성하여 DB서버에 전달하여 쿼리가 실행되고 그 결과물을 어플리케이션에 전달하는 구조입니다.

DB서버에 쿼리를 미리 만들어 사용하는 방법은 Database내에 Stored Procedure, View, Function 등의 DB Object를 미리 만들어 저장하고 어플리케이션에 호출하여 사용할수 있으며 ORM Framework에서도 연동하여 사용이 가능합니다.






Comments

Leave a Reply

*