MEMO
1. 설치 : 다운로드 : http://www.microsoft.com/korea/msdn/vstudio/express/
 엔진명
  정식버전 : (local), 컴퓨터명, IP주소 SQL Server 2008 Standard버전 : 상용
   (local)사용가능, (local)\원하는이름
  익스프레스 버전 : (local)\SQLExpress : 무료
   Visual Studio는 기본적으로 익스프레스엔진을 사용
 
2. 데이터베이스 관리
 Database : 데이터를 모아 놓는 캐비닛 역할을 하는 파일시스템
  하나의 데이터베이스(파일)에 여러개의 테이블(레코드들의 집합)과 SQL 개체들을 모아서 하나의 이름으로 관리할 수 있는 구조
  예를들어, 닷넷코리아 사이트의 모든 정보는 DonNetKorea.MDF 파일에 모두 저장되어져 있다. 공지사항, 자유게시판, 회원정보 ..
  데이터 저장
   텍스트 파일에 보관  
   DB에 데이터를 보관
   XML에 데이터를 보관
 확장자
  MDF : Primary - 데이터
  LDF : Log - 로그
  NDF : Secondary - MDF파일과 동일
 데이터베이스 생성
  DB명 : 대부분 사이트이름과 동일하게
   MyDatabase 생성
 Create Database 구문으로 옵션 설정해서 데이터 베이스 만들기
  기본 : Create Database MyDatabase; Go;
  확장 : Create Database MyDatabase
3. 사용자 관리
 Windows Server 최고관리자 - Administrator
 SQL Server 최고관리자 - sa
 일반 계정
  아이디 : My
  암호 : Pa$$w0rd
  권한 : MyDatabase에 모든 권한(db_owner)
4. UDL : OLE DB설정 : 원격 접속 테스트
 DB 접속을 위한 4가지 필수 조건 (항목) : 커넥션 스트링(ConnectionString)
  Server / Data Source
  Database / Initial Caltalog
  User ID / Uid
  Password /Pwd
 데이터베이스 연결문자열 : 닷넷 프로그래밍에서 필요
  ConnectionString="Server=(local)SQLExpress;Database=MyDatabase;UserID=My;Password=Pa$$w0rd;";
  ConnectionString="Data Source=(local)\SQLExpress;IntialCatalog=MyDatabase;Uid=My;pwd=Pa$$w0rd;";
 UDL 파일을 만들어서 데이터베이스 연결 문자열을 생성
  *.txt -> 확장자를 *.udl로 변경 -> 속성 -> 4가지 정보 기록 후 저장 -> udl 파일을 노트패드로 열면 데이터베이스 연결문자열을 얻을 수 있다.
  Asp3.0까지는(.NET 이전버전) Provider절 사용
  ASP.NET이후로(.NET 이후버전) Provider 절 제외해서 사용
5. Table(테이블) : 쇼핑몰 관련 솔루션 사이트 분석 : 많은 시간 투자
  ex) makeshop.co.kr // whoismall.com // wisecart.com
  개념적 데이터베이스 모델링
   상품, 주문, 회원, 쇼핑카트, 공지사항, 카테고리, 상품평, 주문서, 주문확인,..
  논리적 데이터베이스 모델링
  물리적 데이터베이스 모델링
 테이블 : 데이터베이스에 실제로 데이터가 저장되는 공간
  행(레코드)과 열(필드, 컬럼)로 구성된 표형태로 데이터 보관 : 관계형 데이터베이스
  데이터형식
   Int, VarChar, Char, DateTime, Text, Float, Image...
  제약조건
   Identity, Primary Key, Default(), Unique, Null, Not Nul, Check, References : Foreign Key
 명령어가 아닌 관리도구로 테이블 생성
  한줄 메모장 응용 프로그램 만든다면??
   Memos : 메모
    Num : 번호, 자동증가
    Name : 작성자
    Email : 이메일
    Title : 메모
    PostDate : 작성일
 임시 테이블 : Create 테이블 시 테이블 명 앞에 #을 붙여서 임시 테이블 생성 가능
  Create Table # 테이블명 : 로컬테이블
  Create Table ##테이블명 : 전역
6. SQL구문
 DDL(Data Description/Definition Language) : 데이터 기술/정의 언어
  Creat :구조(스키마) 생성
  Alter : 구조 수정
  Drop : 구조 삭제
 DML(Data Manipulation Language) : 데이터 조작 언어
  Insert : 데이터 삽입
  Select : 데이터 조회
   조인(Join)
   서브쿼리(SubQuery)
   Select 관련 - Select, Form, Join, On, Where, Group By, Having, Order By
   기타
    Distinct
  Update : 데이터 수정
  Delete : 데이터 삭제
7. T-SQL(Transact - SQL) : SQL Server내에서 사용하는 프로그래밍 문법 <-> PL/SQL : 오라클
 출력문
 주석문
 변수
 연산자
 제어문
  if문
  while문
 내장함수
  집계함수
  수학관련함수
  문자열관련함수
  날짜관련함수
  형식변환함수
  시스템함수
  사용자정의함수
8. SQL 개체
 테이블(Table) : 실제 데이터 저장 공간
  테이블 제약 조건
   Identity(1, 1) : 자동 증감값, 일련 번호
   Primary Key
   Default()
   Unique
   Null, Not Null
   Check
   References : Foreign Key
 뷰(View) : 가상 테이블(실제 데이터는 테이블에 그것을 조회하는 개체는 뷰로)
  자주 사용되는 긴 Select문을 View로 만들어 놓고 이를 호출
 저장프로시저(Stored Procedure)
  긴 문장을 짧은 하나의 명령어로 대체
  C#의 함수처럼 매개변수 및 반환값 처리 가능
  컴파일 방식(인터프리터 방식 아님) : 속도가 빠르다
  Output 매개변수와 Return
 인덱스(Index)
  우편번호 테이블의 동 필드에는 Clusterd Index를 걸자
   그리고 동 이름으로 시작하는 쿼리문으로 작성.
    ~가 들어가는 동이름 검색은 하지말자. 예)Dong Like '%동이름% =>성능저하
 함수(Function) : 사용자 정의 함수
 트리거(Trigger) : 방아쇠?, 자동처리
 트랜잭션(Transaction) : All or Nothing
  여러개의 문장이 전체가 완료되면 전체를 Commit 그렇지 않으면 모두 RollBack
9. DTS(데이터 변환 서비스) : 데이터 가져오기 및 내보내기 (Express 버전에선 안됨, 정식버전만 가능)
 Http://www.zipfinder.co.kr 에서 최신우편번호 데이터 가져오기
  Dbf파일을 -> 엑셀로 열어서-> csv 파일로 새로 저장
   DTS(데이터 가져오기) 서비스를 사용하여 csv파일의 값을 Zip 테이블로 이동  
 txt, csv, xlsx 등에 있는 데이터를 SQL Server Table로 이동
 원격에 있는 DB를 로컬로 이동
 Ex)         일반 텍스트 파일(CSV 파일) 값을 DB로 가져오기
  우편번호 테이터(엑셀파일)를 받아서 DB로 데이터 가져오기
              원격(다른SQL 서버에 있는 데이터를 로컬 SQL Server로 가져오기)
  Identity, Primary Key와 같은 제약 조건은 해제
   로컬에 데이터 백업용으로 주로 사용
 데이터 복사
  원격 DB를 로컬로 복사
 
10. 백업 및 복원 - Market.bak로 백업
 물리적인 MDF/LDF/NDF 를 안전한 곳에 복사
  서비스를 중지
   작은 규모에서 10분 정도의 중지시간 허용 가능한 상태라면
  주의
   기존에 등록된 사용자가 있으면 제거 후 다시 로그인 사용자 지정
    해당 데이터베이스 보안->사용자->전에 사용하던 사용자 삭제
  주로 개발환경에서 사용
 백업 마법사를 사용해서 *.bak 파일로 백업
  서비스 가동(백업시 속도 저하 -> 새벽시간대)
   대규모에서 실시간 서비스 유지
  종류
   풀백업
   차등백업
   스케줄링 가능
  주로 실 서버환경에서 사용
 명령어 백업
  Backup Database
  Restore Database