19

 

구축 프로세스

1 요구사항 식별

  시간절약성

  인원절약가능한지

  경제적 타당성

  구현가능성 검토후 구출계획함

2 사용자 요구사항 분석 정의 검토

3 디비설계 객체설계 UI설계함

 

복합적인 업무를 작은 단위로 분석 모듈화 합니다

 

배경도 작성 Context Diagram

시스템을 누가 사용할것인지 역활자와 역할을 묘사

여기서 역활자는 사람뿐만 아니라 다른 시스템일수도 있다 ( : 출결시스템)

 

과정도와 유즈케이스분석을 한후 시나리오작성합니다

 

이때부터 데이타베이스팀, UI작업팀, 프로그램팀 3가지의 부서가 작업시작(.. 그전엔 할일없었다..)

 

개념설계

파일로 기록할 데이타선별 ER다이어그램을 작성합니다

Entity (실체, 실존하는것), Relationship(관계)

무엇을 저장할것인가를 고민

 

논리설계

반복해서 데이터를 집어넣고 접근하는것을 작은단위로 쪼개 효율적으로 설계

어떻게 저장할것인가를 고민(고민만 하는거임)

 

물리설계

위에서 생각한걸 실제 만들어내는겁니다

 

설계시 UI 스크레치 그림에 중요한 사항도 써야합니다

(아이디의 제한 길이를 적던가 그런거)

 

데이터를 변수와 묶을수 있는 집합으로 구분 할수 있어야 한다

 변수는 값을 넣을수 있는 자료형으로 정의할수 있는것이고

집합은 여러 변수를 포함 있는 집합을 의미하는것입니다

 

그룹지을때 정보, 관리, 상세 이런건 사용할필요가 없는 단어들

등록, 계획과 같은 동사로 사용되는 단어또한 사용할 필요가 없음

 

관계에는 능동자와 피동자가 있다

~ ~ ~하다 라는게 성립한다

('학생' '교재' '구입'하다)

 

by 병사미 | 2008/04/21 17:14 | 트랙백 | 덧글(0)

18

 

    Asp : 동적인 템플릿 기반 페이지

    Asp 중요 5 개체.

    MS : 파일을 관리해주는 시스템.

    Ado : 비주얼베이직등 언어가 쿼리를 수행할 있게 해주는 도구.

     

    쿼리

    Where 쓰는 것은 그만큼 작업량을 늘려서 서버에 부담을 준다. 그래서 가능하면 연산자로만 해결하는것이 속도면에서 빠르다.

     

    1) 성별이 남자인 멤버를 출력하시오.

    Select * from member where jumin like'___-[13]%'

     

    2) 010번호사용자 멤버 출력

     

     

    날짜함수를 이용한 출력

  1. 날짜 데이터 형식
  2. Datetime 1975.1.1 ~ 9999.12.31

    Smalldatetime 1990.1.1 ~ 2079.01.06

     

  3. Datepart 약어
  4. Year   yy, yyyy

    Quarter     qq, q

    Month

     

     

  5. 날짜 함수
  6. 현재 날짜 불러오기   Select getdate()           

    현재 날짜에서 5 더하기    Select dateadd(day,5,getdate())

                                          Select dateadd(dd,5,getdate())

    Select dateadd(month,5,getdate())

    Select datediff(day,getdate(),'2008.04.23')

     

    Select convert(varchar(20),getdate(),1)

    Select convert(varchar(20),getdate(),2)

    Select convert(varchar(20),getdate(),101)

    Select convert(varchar(20),getdate(),102)

    Select convert(varchar(20),getdate(),103)

    Select convert(varchar(20),getdate(),104)

    Select convert(varchar(20),getdate(),105)

    두 자리 연도(yy)(1)

    네 자리 연도(yyyy)

    표준

    입/출력(3)

    -

    0 또는 100(1, 2)

    기본값

    mon dd yyyy hh:miAM(또는 PM)

    1

    101

    미국

    mm/dd/yyyy

    2

    102

    ANSI

    yy.mm.dd

    3

    103

    영국/프랑스

    dd/mm/yy

    4

    104

    독일

    dd.mm.yy

    5

    105

    이탈리아

    dd-mm-yy

    6

    106 (1)

    -

    dd mon yy

    7

    107 (1)

    -

    Mon dd, yy

    8

    108

    -

    hh:mi:ss

    -

    9 또는 109(1, 2)

    기본값 + 밀리초

    mon dd yyyy hh:mi:ss:mmmAM(또는 PM)

    10

    110

    미국

    mm-dd-yy

    11

    111

    일본

    yy/mm/dd

    12

    112

    ISO

    yymmdd

    -

    13 또는 113(1, 2)

    유럽 기본값 + 밀리초

    dd mon yyyy hh:mi:ss:mmm(24h)

    14

    114

    -

    hh:mi:ss:mmm(24h)

    -

    20 또는 120(2)

    ODBC 표준

    yyyy-mm-dd hh:mi:ss(24h)

    -

    21 또는 121(2)

    ODBC 표준(밀리초 포함)

    yyyy-mm-dd hh:mi:ss.mmm(24h)

    -

    126 (4)

    ISO8601

    yyyy-mm-ddThh:mi:ss.mmm(공백 없이)

     

    127(6, 7)

    ISO8601(Z 표준 시간대)

    yyyy-mm-ddThh:mi:ss.mmmZ

    (공백 없이)

    -

    130 (1, 2)

    회교식(5)

    dd mon yyyy hh:mi:ss:mmmAM

    -

    131 (2)

    회교식(5)

    dd/mm/yy hh:mi:ss:mmmAM

     

     

    예제)

    가입한지 6개월이 안되는 회원을 검색하시오.

    Select * from notice where regdate > dateadd(month,-6,getdate())

     

    집계함수 -> 필요로하는 필드 하나만 선택하여 작업이 .

    Select sum(age) from member

    Select min(age) from member

    Select max(age) from member

    Select count(age) from member

    Select avg(age) from member

     

    그룹으로 묶어서 집계하기

    Select address, avg(age) from member group by address

     

    지역별로 그룹을 묶어서 멤버수 표현하기

    Select address, count(address) from member group by address

     

    서울지역 회원의 평균나이 구하기 -> (group by) 있을 경우에만 (having) 쓸수 있음.

    select address,avg(age) from member group by address having address='서울시'

     

    수치연산 함수

    Select abs(-3),abs(3)

     

    구성함수 :

    @ : 지역변수

    @@ (전역변수)

    기타함수

    서브쿼리

  7. 쿼리의 중복이 가능하다.
  8. 쿼리의 결과값을 가지고 다시 쿼리의 입력값으로 사용.
  9. Select * from 고객 where 아이디 = '땡큐'

    Select * from 고객 where 아이디 = ('?')

     (본래 쿼리)

     

    신상정보 테이블과 나이테이블이 따로 있는 경우에 30 이하의 멤버 신상을 구하라.

    select * from member where id in(select id from member where age < 30)

     

    2.(서브쿼리에서 추출한 id토대로 신상정보 출력)   1.(나이있는 테이블에서 조건맞는 id 추출)

     

     

     

     

    select * from noti

by 병사미 | 2008/04/21 17:14 | 트랙백 | 덧글(0)

17

 

할때마다 불러와서 연산하게 하지 말고 , 가능하면 DB에서 처리하게 하라.

Recordset 이란 Cursor 조작도구 이다.

 

 

Cok 추가

SQL 쿼리문

성이 ,, 사람을 가져오기

Where Name Like '[박김이]%'

성이 박이 아닌사람을 가져오기

Where Name Like '[^]%'

 

  • 문자열 함수
  • ASCII 함수

Select ASCII('aaa')

Select CHAR(97)

  • UNICODE 함수

Select UNICODE('나냐너')

Select NCHAR(45208)

  • 포함된 문자열 검색함수

Select CHARINDEX('AG', [필드])

Select CHARINDEX('AG', [필드], 4) <- 뒤에 숫자는 시작점

Select PATINDEX('%A%', [필드])

  • 문자열 추출함수

Select LEFT('asasd', 3) - 왼쪽부터

Select RIGHT('asasd', 3) - 오른쪽부터

Select SUBSTRING('asasd', 3,2) - 잘라내기

  • 문자열 변환 함수

Select LOWER('asAsD') - 소문자로

Select UPPER('asAsD') - 대문자로

Select REVERSE('ABCDE') - 거꾸로

  • TRIM 함수

Select LTRIM('     asasd        ') - 앞쪽 공백 잘라내기

Select RTRIM('     asasd        ') - 뒤 공백 잘라내기

  • SOUNDEX 함수 - 영어 발음값

SOUNDEX('BROTHER')

  • DIFFERENCE 함수 - 문자열의 영어 발음 비교

DIFFERENCE('BROTHER', 'BRATHER')

  • 문자열 대치 함수

Select REPLACE('ABCDE', 'CD', 'TTTTTT') - 변환

Select STUFF('ABCDE', 3, 2, 'TTTTTT') - 바꿔넣기

  • 반복 함수

Select REPLICATE('OK', 3) - 3 반복

Select '{'+SPACE(10)+'}' - { } 사이에 공백10자리

  • 그밖의 함수

Select LEN('나야나') - 길이

Select QUOTENAME('ABCD EF') - [ABCD EF ] [ ] 삽입

by 병사미 | 2008/04/21 17:14 | 트랙백 | 덧글(0)

16

 

    DBMS  

    -->SQL

    • Data Definition Language --- Create(생성), Alter(수정), Drop(삭제)
    • Data Manipulation Language --- Insert(삽입), Delete(삭제), Update(수정), Select(검색)
    • Data Control Language --- Grant(권한부여)

     

    Select = Select * from table

    Update = Update Table Set Field='조건', Field='조건' Where Field='유일한키'

    Delete = Delete table Where Field='유일한키'

    Insert = Insert Into table (Field,Field) Values ('','')

     

    Char(3) - ASCII/고정

    Varchar(3) - ASCII/가변

    nChar(3) - UNICODE/고정

    nVarchar(3) - UNICODE/가변

     

     

    ADO (ActiveX Data Object) - VB 쓰는 도구

    인증 - Connection (ODBC, OLEDB)

    실행 - Command

    결과 - Recordset(커서조작도구)

     

    ConnectionString = "Provider=sqloledb;Data Source=MySqlServer;" & _
             "Initial Catalog=Pubs;Integrated Security=SSP
    I';"

     

    ConnectionString = "Provider=sqloledb;server=MySqlServe';" & _
             "
    database=Pubs;uid=sa;pwd=classc;"

     

     

    DB: 한글 사용시 호환문제가

         생길 있다

by 병사미 | 2008/04/16 10:57 | 트랙백 | 덧글(0)

15

 

Recordset

커서이동

Connection

인증

Bof

첫머리

Eof

마지막

자바스크립트는 While / Do while 두가지

비베는 While / Do while (조건이 참인 동안) / Do until (조건이 참이 될때까지)

DB에서 Bof 이면서 Eof이면 검색된 항목이 없다는

 

필요한 개수만큼 한정해서 사용할때

스크립트로 조작하는것은 비효율적(두번일하는것이라서)

디비쿼리에서 조작하는것이 효율적

 

select top 15 title+'/'+content from notice order by seq desc

15,두가지 레코드,내림차순(오름차순이 기본값)

 

select title as '제목' from notice

레코드명을 바꿔서 보여주기

select * from notice where seq >= 10 and seq <20

10번대만

select * from notice where seq between 10 and 19

10번대만

select * from notice where seq in(3,7,9,13)

3,7,9,13번만

select * from notice where src is null

Null값인 것만

by 병사미 | 2008/04/16 10:56 | 트랙백 | 덧글(0)

◀ 이전 페이지          다음 페이지 ▶