1. Strings and Pattern Matching Algorithms
T : text (길이 n)
P : pattern (길이 m)

1) Brute Force Pattern Matching
: 가장 기초적인 방법. text의 처음부터 끝까지 alphabet 하나씩 옮겨가며 비교. 따라서, TC 는 O( (n-m+1)m ) = O(nm) => O(n^2)

Brute-force pattern matching



2) The Boyer-Moore Algorithm
: P와 sizable fraction of T의 비교를 줄여준다.
Brute-Force 알고리즘은 unbounded alphabet에서도 사용 가능하지만, BM 알고리즘은 finite size에서만 가능하다.
=> alphabet이 moderately sized하고 pattern이 상대적으로 길 때 가장 빠르다.

(*) Two heuristics
1. Looking-Glass Heuristic : P의 제일 뒤부터 compare한다.
2. Character-Jump Heuristic : mismatch 일어나면 (T[i] = c),
pattern에서 'c' 포함하면 (역시 backward로 검사) 거기까지 pattern shifting,
pattern에 'c'가 없으면 그 다음까지 pattern 모~두 shifting
=> last occurrence function 만들어 사용.
(*) Last-Occurrence Function
L(c) = P[i]의 가장 큰 인덱스 i (pattern에 포함 안되면 -1)
Pattern을 뒤에서 앞으로 한 번 scan해야하고,
alphabet 전체도 한 번 scan해야하므로 (-1인 것 찾기)
last-Occurrence Function의 TC = O(m+s) // s는 alphabet size

Boyer-Moore pattern matching

(case1 은 last occurrence가 j를 pass 한 경우 그냥 한 칸만 shift 하는 것이다.)
worst-case : T = aaaa.....a, P = baaa....a 일 때.
O(nm + s) 가 된다. 거의, Brute-Force 알고리즘이랑 막상막하
그러나, English text와 같은 text에서는 skip이 많이 일어나서 효과적이다. experimental evidence로, 5 문자 pattern string에서는 비교가 0.24번 일어났다.
그리고, 이 것은 simplified된 BM 알고리즘이고, 실제는 다른 shift heuristic(KMP에서 아이디어)을 사용하여, running time은 O(n+m+s)이다.

3) The Knuth-Morris-Pratt Algorithm
: Brute-Force와 BM 알고리즘에서는, match가 실패하면, 그 전에 compare 했던 information을 다 버리고 from scratch로 알고리즘을 수행했다. 그러나 KMP 알고리즘에서는 전에 비교했던 정보를 다 이용하여, O(n+m)의 수행시간을 갖는다. 이것은, worst case에 text와 pattern 전 체를 최소 한 번 읽어들인다는 것이다. 그래서 left-to-right로 pattern을 text와 비교하지만, shift를 더 지능적으로 하기 때문에 Brute-Force 알고리즘 보다는 훨씬 효율적이다. (어떤 경우에서는 BM 보다 못하기 때문에, BM 보다 효율적이라 말할 수는 없다. )

KMP 알고리즘의 핵심은, Failure Function이다. f(j)는 P[1..j]의 suffix인 가장 긴 P의 prefix 길이이다. (convention으로, f(0) = 0 ) 이 Failure Function은 pattern 내에서 repeated substring을 "encodes" 해주기 때문에 매우 중요하다.

Knity-Morris-Pratt pattern matching


i never goes back!

(*) Performance 증명
failure function 계산시간 제외하면, KMP의 running time은 while-loop의 iteration 수에 비례한다. 분석을 위해서 k (= i-j)를 두어 T에서 pattern P가 shift된 total amount 라 하면, k<=n임을 알 수 있다. loop 실행중에는 다음 세 가지 경우 중 하나이다.
case 1: T[i] = P[j] -> i++, k는 그대로 (j++ 이므로)
case 2: T[i] =/= P[j] AND j>0 -> i는 그대로, k는 최대 1증가 (k가 i-j에서 i-f(j-1)이 되고, f(j-1) < j 이기 때문)
case 3: T[i] =/= P[j] AND j = 0 -> i++, k++ (j가 그대로임)
따라서, KMP에서 while-loop의 총 실행 수는 최대 2n 이다.
(*) KMP Failure Function 만들기
여기에 사용된 알고리즘은, KMPMatch 알고리즘과 비슷한, "bootstrapping" 프로세스이다. else if j>0 then 부분에서, f(j-1)을 사용하고 있는데, i>j 이기 때문에 f(j-1)은 항상 정의되어있다.

전체적으로, KMP 알고리즘의 running time = O(n+m) 이다.
(s에 영향을 받지 않는다. )
Posted by 스니
스니 이야기/일기2004. 10. 31. 15:33
부산은 서울과 다르게,
그냥 1구간, 2구간이 있다.
현재 1구간은 700원, 2구간은 800원이더군.

근데 나는 2구간을 1600원 내고 탔다. 두 번이나 -ㅇ-

부산역에 도착해서 집에 올 때,
도착해서 보니까, 아무리 찾아도 표가 없는 것이다;;; -.-
부산역에서 표를 안 뽑아온 줄 알았다..
그래서 벌금으로 800원 더 냈다.

근데 집에 오니까 핸드폰 사이에 표가 끼여있었다..... 젠장.


토요일 해운대 갔다가 서면 가면서...
진짜 표를 안뽑았다.... 젠장..
그래서 또 벌금으로 800원 더 냈다..

이거 맨날 찍고 댕기니까 까먹는다.
2구간도 800원 밖에 안하네.. 역시 부산~~ ^ㅇ^
했다가 결국 1600원씩을 내고 탔다....
나는 부산을 사랑해. -.-
Posted by 스니
스니 이야기/일기2004. 10. 24. 00:28
오늘 성은이 조카 언니 -ㅇ- 결혼식이었다.

나는 조카가 많다. 조카 손자도 있다.

우리 아빠보다 한 살이 많은 사촌 오빠도 있다....
(큰아버지 큰아들.)

이번 결혼이 조카의 첫 번째 결혼식은 아니다.
용하 오빠 세 딸은 지난 학기를 마지막으로 다 시집갔고,

오늘은 큰 고모의 장녀의 장녀 결혼이었다.

결혼식 가서 보이는
내 또래 애들은 다~~~ 내 조카다. -.-

그러나.
"언니 안녕하세요? (꾸뻑)" -> "어~ 선희 왔어?" 이렇게 된다.
뭐. 사실 나도 그게 편하고..... 요즘 시대에... ㅋㅋㅋ

오늘 결혼식은 코엑스 인터콘티넨탈 호텔.
진행 요원들의 외모를 보는 순간.
"아... 이거 비싸겠구만.." 하는 생각이 들었다.
(호텔 이름 보다는, 진행요원 얼굴에서 그 생각이 더 들었다.ㅋ)

키도 크고 괜찮은 외모에, 옷도 매우 깔끔하고 깨끗. 흰 나비넥타이까지.
서빙하는 여자들도 매우매우 이쁘더군.

돈 진짜... 많이 들었겠다....
그런데. 결혼식을 이렇게 해야하나?
뭐. 많이 와주면 좋긴 하겠지만....

결혼식에서 아빠는 항상,
"우리는 50명." 이라고 하신다.
나도 대찬성!
(50명이 많다면 많은데, 보통 결혼식을 생각한다면.... 적지. 흐흐)

사실. 나는 성은이 언니가 잘 기억도 안나고...
(요즘 결혼식 유행중에 하나가, 식 시작 전후에, 신랑 신부 어릴적 사진을 영상으로 보여주는 건데, 그 많은 사진들 속에,
언니와 나의 어릴적 모습이 함께 있어서 매우 놀랐음... -.- )
조카들이 워낙 많아서, 누가 누구의 딸인지도 잘 모르겠고,
이름도 잘 모르겠다.

내 결혼식을 이렇게 한다면,
촌수도 알 수 없고, 잘~하면 이름은 들어본.
그런 어른들과.
인사만 몇 번 드렸던 엄마 아빠 지인들과.
저 많은 조카들과, 그 때 쯤이면 많이 조카 손자 손녀들이 오겠지...

뭐. 그 사람들이 오는게 싫다기 보다는...
그들에게 들어가는 밥값이 아깝다기 보다는...

그렇게 되면 진짜 형식적인 결혼식이 될 것이라는 거다.

결혼식에 가면, 신랑은 씩씩하게, 신부는 얌전하게.
특히 신부는, 거의 대부분을 고개를 숙이고 있다.

신부 대기실에, 너무 커서 혼자서는 못돌아 다니는 드레스를 입고 앉아있으면,
아주 많은 사람들이,
"신부 이쁘나?" 보러 온다... -.-

결혼식 끝나면 빨리 가서 피로연 드레스로 또 갈아입고 와야하고..
형식적인 결혼식 단체 사진도 찍어야 하고...
많이 테이블 돌아다니면서 인사도 해야하고...

나는 그런 것 보다는,
진짜 친한 친구들하고 가까운 친척들하고,
엄마 아빠 지인이지만 나와도 서로 아는 그런 분들하고
결혼식을 하고 싶다.

그냥 깔끔한 웨딩 드레스(는 사실 입어보고 싶다. 그러므로 깔끔하고 혼자 돌아댕길 수 있는 흰색 드레스면 되겠다.)입고
오는 사람들 내가 반길 수 있고,
고개 안숙이고 다녀도 되고
활짝 많이 웃을 수도 있고, 이야기도 많이 할 수 있는.
그런 결혼식이 좋을 것 같다.


By the way..can I meet someone who marry me? kk
Posted by 스니
컴퓨터 과학!/Database2004. 10. 21. 22:46
Chap 1. Database and Database Users

1.1 Introduction
Database : a collection of related data
Data : kwon facts (that can be recorded and have implicit meaning)
▪ Database의 implicit properties
① Miniworld 또는 UoD 를 반영.
② A logically coherent collection of data with some inherent meaning.
③ A specific purpose를 위해 설계, 구현됨.
▪ DBMS
: A collection of programs that enables users to create and maintain a DB.
(Defining, constructing, manipulating, sharing)
Database system
: DBMS + Application Program + Stored DB + Stored DB Definition(Meta-Data)


1.2 An Example
▪ DB manipulation : querying & updating

1.3 Characteristics of the Database Approach
: 각 application마다 각각 따로 file을 만들어 관리해야 했던 file processing에 비해, 하나의 data repository만 유지하는 DB system approach가 훨씬 효율적이다.
① Self-Describing Nature of a Database System
DB system = DB 그 자체 + DB 구조와 제약에 대한 complete 정의나 설명.
catalog : meta-data (각 파일의 구조, 데이터 형, 제약 조건 등의 DB 정의)가 저장되어있다.
특정 DB에 있는 파일 구조를 알려면 catalog만 참조하면 되므로, DBMS software는 general-purpose로 만들 수 있다.

② Insulation between programs and data, and data abstraction
program-data independence : DBMS catalog에 저장된 data file의 구조와 access programs는 별개이다. => 데이터 구조 변경 =/=> 프로그램 변경
program-operation independence : 사용자는 operation이 어떻게 구현되었나 몰라도 사용 가능.
data abstraction : 위의 두 개를 가능하게 하는 것. Conceptual representation만 제공. (data model)
=> 사용자에게는 conceptual representation만 제공하고, DBMS가 필요하면 자세한 사항은 catalog에서 꺼내어 보고 file access.
③ Support of multiple views of the data
④ Sharing of data and multiuser transaction processing

1.4 Actors on the Scene
① Database Administrators
② Database Designers : 데이터 정의 및 저장 구조 설계
End Users
casual end user : DB 사용 빈도수 적지만 다양하고 복잡한 정보를 원함
naïve, parametric user : 정형화된 질의/갱신 작업 반복 (canned transactions)
sophisticated end user : 데이터의 복잡한 작업 수행
stand-alone user : 개인 데이터 베이스 사용자
④ System Analysts and Application Programmers (Software Engineers)

1.5 Workers behind the Scene
① DBMS system designers and implementers
② Tool developers
③ Operators and maintenance personnel

1.6 Advantages of Using the DBMS Approach
① Controlling Redundancy
▪ File processing : 모든 사용자 그룹은 각자 파일을 보관하고 있어서 같은 정보라도 여러 파일에 중복하여 보관됨.
=> redundancy 문제 발생. (duplication of effort, 저장공간 낭비, inconsistent)
▪ DB approach : redundancy 해결. (때로는 controlled redundancy 필요.)
② Restricting Unauthorized Access : security 보장.
③ Providing Persistent Storage for Program Objects
④ Providing Storage Structures for Efficient Query Processing
⑤ Providing Backup and Recovery : H/W, S/W 고장시에도 DBMS가 데이터 유지
⑥ Providing Multiple User Interfaces : 다양한 사용자 유형 및 숙련도 지원
⑦ Representing Complex Relationships among Data
⑧ Enforcing Integrity Constraints : semantics of DB
(무결성 보장)
⑨ Permitting Inferencing and Actions Using Rules
⑩ Additional Implications of Using the Approach

▪ Potential for Enforcing Standards
▪ Reduced Application Development Time
▪ Flexibility
▪ Availability of Up-to-Date Information : concurrency control
▪ Economies of Scale : 중복투자, 데이터 관리 인력 감소

1.7 A Brief History of Database Applications

1.8 When Not to Use a DBMS
simple, well defined, not expected to change, real-time, no multiple user access

Chap 2. Database System Concepts and Architecture
2.1 Data Models, Schemas, and Instances
data model : a collection of concepts that can be used to describe the structure of a database
▪ Categories of Data Models
① High-level (or conceptual) data model
DB 사용자가 이해하는 데이터베이스의 구조
entity, attribute, relationship으로 miniworld 표현
② Low-level (or physical) data model
데이터가 어떻게 컴퓨터에 저장되는지를 자세하게 설명하는 개념 제공
③ Representational (or implementation) data model
DBMS에서 사용하는 모델로, 위 두 데이터 모델의 중간 모델.
Database Schemas (meta-data)
DB 설명. 대부분의 데이터 모델은 schema diagram을 가지고 있음.
Instances : 저장된 데이터
Database State : 특정 시점에서의 instances의 집합.

2.2 Three-Schema Architecture and Data Independence
2.2.1 The Three-Schema Architecture
Internal schema : DB의 물리적 저장 구조 기술 ( physical data model 이용)
Conceptual schema: DB구조 기술 ( conceptual, implementation data model이용)
External schema : 사용자의 필요에 따라 DB 일부분 기술

3단계 스키마


2.2.2 Data Independence
Logical data independence : external schemas나 응용 프로그램을 바꾸지 않고 conceptual schema 변경 가능.
Physical data independence : conceptual schemas 바꾸지 않고 internal schema 변경 가능.

2.3 Database Languages and Interfaces
Schema 정의 언어 : DDL(data), SDL(storage), VDL(view)
검색, 삽입, 삭제, 갱신 언어 : DML(data manipulation), SQL(structured query)
high-level DML : 내가 원하는 것을 표현한다.
low-level DML : 어떻게 가져올 지에 대해서도 표현한다.
▪ Host language : C, COBOL등 응용 프로그램이 사용하는 언어.
▪ DBMS Interfaces
: User-friendly, natural language, for parametric users, for DBA.

2.4 The Database System Environment
2.4.1 DBMS Component Modules
Stored data manager : 디스크에 저장된 DBMS 정보에 대한 접근 제어
DDL compiler : schema definition 처리, catalog에 저장.
Runtime database processor : runtime에 DB에 접근하는 것을 다룸.
Query compiler : interactive하게 들어오는 high-level query들을 다룸.
Pre-compiler : host programming language로 적힌 응용 프로그램에서 DML 명령들을 뽑아낸다.

Typical component modules of a DBMS. (짤렸음. -.- )


2.4.2 Database System Utilities
: loading, backup, file reorganization, performance monitoring
2.4.3 Tools, Application Environments, and Communications Facilities

2.5 Centralized and Client/Server Architectures for DBMSS

2.6 Classification of Database Management Systems
▪ Data model -> relational, network, hierarchical, object-oriented 등.
▪ Number of users -> single-user, multi-user systems
▪ Number of sites -> centralized, distributed DBMS
▪ 목적 -> general, special-purpose DBMS
Posted by 스니
스니 이야기/일기2004. 10. 20. 23:19
자러간다. -.-

언니가 공부하고 있으면 내가 실... 언니 방에 들어가서 침대에 누워 자고,
내가 공부하고 있으면 언니가 실... 내 방에 들어와서 누워 잘려 그런다.

사실. 언니는 잔 적은 없다.
나는 종종 가서 잤다.

"언니. 나 십분!"

(항상 말은 그렇게 한다. 절대 안일어난다. 깨어나기 전까지. 흐흐)
Posted by 스니
스니 이야기/일기2004. 10. 20. 16:32
이번주 토요일에 조카 결혼식이 있다.
사실, 이름 잘 모르겠다.
조카가 너무 많다.... -.-

얼굴은 알겠는데 이름은 모르겠고..
나보다 나이가 많아서 언니라고 몇 번 불러봤다.

이번주 토요일.
엄마 아빠가 서울에 올라온다.
아빠는, 이번에도 우리 집에는 안오겠지.

엄마 아빠 보러 결혼식 가야하는데.
자리가 자리이니만큼,
옷도 이쁘게 입고,
나이가 나이이니 만큼,
화장도 좀 하고 가야할텐데...싶어서

언니랑 옷 고르고,
화장도 해봤다.

내 화장술은 발전한게 없더군.
가볍게 바탕화장, 연하게 눈화장(걍 연분홍 살짝 한번.)
그리고 마스카라.

해보고 지울꺼니까- 싶어서
아이 라인도 그려보고
(아무리 그려도 눈 뜨면 안보인다. 3미리 정도도 안보이더군. -.-)
아이쉐도우도 막 진하게 그려보고
(나중엔 멍든 눈 처럼됐음.)
볼터치도 해보고

아. 큰일났군. 싶었다.

이거 이제.. 벌써 나이는 음..............( '')
화장도 제대로 못하다니.
평소에 안하고 다니는 거 까지는 좋은데. (내 생각엔;; )
해야할 때는 어색하지 않게 해야할텐데.
어울리지도 않고~ 하지도 못하고~

이젠 화장을 좀 하고 다닐까? 싶다가도,
이런 생각 사실 이번에 처음 하는 것도 아니고.
1,2학년도 아니고 어색한 화장하고 다니는 것도 웃기고;;;; ㅋㅋ

큰일이로세~
Posted by 스니
스니 이야기/일기2004. 10. 19. 23:26
가려워온다.
내팔자야..
Posted by 스니
스니 이야기/일기2004. 10. 18. 20:07
요즘 쫌 널널하다고. 완전 나사 풀려서는... -.-

오늘 현대인의 생활 영양 시험이 3교시인데...
나는 3시라고 생각하고 있었다..

주말에 프린트랑 교재랑 보고, 프린트는 한 번 더 보고..
오늘 아침에 10시에 일어나서.. 널널.. 하게 밥 먹고.
학교 가는 길에.... 네일 케어도 받았다. -.-
아이고... 큐티클이 많네~ 이러면서 룰루 랄라.
그러곤 샌드위치 사서..
역시나 룰루 랄라 한가하게 학교에 갔다.

공도를 갈까 어쩔까 고민하고 있는데 영선 선배 전화가 왔다.

"너 왜 시험 치러 안왔어."
"거짓말 거짓말! 시험 3신데!!!" -ㅇ-

나 정말 영선 선배가 장난치는 줄 알았다....
C040 갔더니 진짜 사람들이 시험 치고 나오고 있다.

정신 없이 조교한테 뛰어가서.
"저 이제 왔는데요, 시험이 3신줄 알았어요.
진짜 시험 문제 하나도 모르는데, 시험 치면 안되요?"

갑자기 조교가 천사로 변신하더니,
15분 밖에 안남았으니, 따로 가서 시험 치자고, 앉아있으란다...
그 때 부터 정신없이 프린트물을 봤으나... -.-
머리에 들어오지 않음. -.-

결국 교수님 방 가서 시험을 쳤다...
시험 전에 외워야지~~ 하고 안봤던 수치들...
하루에 콜레스테롤은 얼마 이하로 섭취해야하며,
정상 혈당 수치. 뭐 이런거..
하나도 못썼다... T.T

남자 조교는 계속 띠껍게 나를 쳐다봤다..
사실. 시험 문제 알고 들어갈 수도 있었으니... 으흐흐

아... 생활 영양..... 주말에 이것저것 찾아도 보고 열심히 했는데.. T.T

엉엉엉엉....
Posted by 스니
스니 이야기/일기2004. 10. 14. 23:36
차호정 교수님께서 처음 부임해서 하셨던 OS 수업.
2학년 2학기, 성수랑 욱희랑 셋이서, 3학년 1학기에 재수강을 하자며,
겁도 없이 들었던 수업..

많이 빡셌지....
맨날 '휴학할꺼야...' 하면서 다녔던 한 학기.
OS는 B+로 매우 만족했지만,
다른 과목 학점이.... -.-
(그래서 지금 디논을 재수강 하고 있다. ㅋㅋㅋ)

오늘. 엠디가 이상해서,
다른 엠디 디스크도 넣어보다가...
발견한... 옛날 디스크.

OS 중간고사를 망치고, 그 다음 부터는
엠디에 수업을 녹음 해서 들었다. 그 후로 이해도가 높아졌었지.

그런데, 오늘 그 디스크를 찾은 것.

그 때도 카리스마가 넘치고 강의가 열성적이라 생각했지만,
-그 때의 '리넉스' 열풍은 정말 대단했었지. ㅋㅋ-
예전 강의는, 교수님께서 처음 맡으신 강이라 그런지.
지금과 느낌이 많이 다르다.

많이 부드러운 것 같다고나 할까..
상상이 가는가? 교수님의 부드럽고 친절한 수업.
아... 부드럽도다....(지금 들으면서 글을 쓰고 있다. 파일 시스템 부분)

조심스러운 것 같으면서도,
그래도 역시 명강의고...

듣고 있자니 기분이 마냥 좋아지는 군. 히히히
Posted by 스니
컴퓨터 과학!/Database2004. 10. 13. 18:14
[요구사항]
때는 바야흐로 22세기. 21세기에 유행하던 얼짱 신드롬이 사회 전반적으로 확산되고, 짱이 연예인의 유일한 등용문이 되면서, 이를 효과적으로 대처하기 위해 "짱 키우기 신개념 프로젝트"를 추진하기에 이르렀다. 당시 연예인 협회 회장이 된 데이터베이스 롸목 반장은, "짱 키우기 신개념 프로젝트"를 위해 얼짱 이회에 각종 짱들을 육성하고 이들을 관리하기 위하여 데이터베이스 시스템을 구축하기로 하였다. 각종 사이트를 통하여 다수의 추천을 받은 들은 주민등록번호이름을 기본적으로 등록하고, 각자의 재능에 따라 얼짱, 몸매짱, 노래짱이 될 수 있으며, 워낙 능력이 뛰어나 재능을 크게 인정 받은 짱들은 몇몇 분야(얼굴 또는 몸매 또는 노래)를 아우르는 짱이 될 수도 있다. 짱으로 인정을 받으면, 얼짱인 경우 코높이눈크기, 얼굴 비율을 등록해야 하고, 몸매짱인 경우는 몸무게를, 노래짱인 경우는 성량음역대를 등록해야 한다.
모든 짱들은 자신을 좋아하는 팬들로 구성된 팬클럽을 여러 개 가질 숙 있으며, 한 짱에 소속된 팬클럽들은 그 팬클럽 이름으로 구별이 가능하고, 팬클럽 관리 차원에서 매년 팬클럽이 결성된 날 팬 캠프를 하기 위하여 비상 연락처로 팬클럽의 회장 이름과 연락처를 관리한다.
짱들은 등록된 연예기획사오디션을 통해서만 연예인으로 데뷔할 수 있으며, 오디션의 관리를 위하여 시행된 날짜응시 분야, 평가 점수를 기록하도록 한다. 한 명의 짱은 같은 날 같은 분야에 대해서 여러 연예기획사의 오디션을 볼 수도 있다. 오디션의 평가점수에 의해 등록된 연예기획사들로부터 지목된 짱들은 연예인으로써 하나의 등록된 연예기획사와 계약을 통해 연예인이 되는데, 이 때는 계약금계약 기간을 명시하도록 한다. 연예인이 되면, 코디매니저연락처를 추가로 관리한다. 10명 이상의 연예인을 관리하는 연예기획사가 각 시/도별로 사업자 등록이 가능하며 등록 시에는 등록번호가 주어지고, 회사 주소대표이름을 관리하도록 한다.

1. 요구사항에서, entity, attribute, relationship을 분석해 보자.
: 주민등록 번호, 이름
얼짱 : 코높이, 눈크기, 얼굴 비율
몸짱 : 키, 몸무게
노래짱 : 성량, 음역대
팬클럽 : 팬클럽 이름, (회장의 이름, 회장의 연락처)
연예기획사
등록 (연예인 10명 이상): 등록번호, 회사 주소, 대표이름.
=> 각 시/도 별로 등록이 가능하고 등록할 때 마다 등록번호가 주어지므로, multivalued attribute.
미등록 : x
오디션 : 시행된 날짜, 응시 분야, 평가 점수
=> 오디션은 연예기획사에서 주최하므로, 연예기획사를 owner entity로 하는 weak entity가 되어야 한다.
연예인 : 코디, 매니저, 연락처
=> 짱이 등록된 연예기획사와의 계약으로 연예인이 되므로,
짱을 owner entity로 하고, 계약을 owner relationship으로 하는 weak entity가 된다.

2. 애매하여 가정이 필요한 부분이 있는가?
(1) 연예기획사에 대하여.
10명 이상의 연예인이 있어야 등록이 가능하고, 짱들은 등록된 연예기획사의 오디션만 볼 수 있고, 오디션에 합격하면 계약하여 연예인이 될 수 있다. 이 등록된 연예기획사는 짱이 연예인이 되기 위한 유일한 등용문이기 전부터 연예인을 관리하여 등록된 기획사이며, 새로 생기는 기획사는 기존의 연예인을 10명 이상 다른 연예기획사로부터 스카웃 해와야 한다.
연예기획사는 기본적으로 회사 이름을 가지며, 같은 이름의 연예기획사가 두 개 이상 있을 수 없다.
(2) 오디션
오디션은 등록된 연예기획사만 주최할 수 있으며, 미등록 기획사는 주최할 수 없다. 왜냐하면, 짱들은 등록된 연예기획사에서만 오디션을 볼 수 있기 때문이다.
(3) 짱과 팬클럽
팬클럽을 가지지 않는 짱이 있을 수도 있다.

3. relationship을 뽑아내보자.
4. 모두 생략하고 걍 그려봤다.

1. 연예기획사 등록된 연예기획사와 미등록된 연예기획사로 나누는데,
미등록 연예기획사는 다른 기획사에 있는 연예인을 10명 이상 스카우트 해야만 등록이 가능하고,
등록 되기 전에는 DB에서 다루지 않는다.
2. 등록시의 문제로, 연예 기획사는 모두 다른 이름을 가지며, 이름과 대표이사 이름으로 관리한다.
3. 연예기획사는 시/도 별로 등록을 한 지사를 한 개 이상 가지고 있다.
각 지사는 회사 주소와 등록 번호로 관리되는데, 등록 번호로 지사를 identify할 수 있다.
4. 팬클럽을 가지지 않는 짱이 있을 수도 있다. 팬클럽은 한 짱에게 속하여 이름으로 구분된다.
5. 짱이더라도 오디션을 보지 않을 수도 있고, 등록된 연예기획사도 오디션을 주최하지 않을 수 있다.
6. 연예인은 오직 한 연예 기획사와만 계약을 할 수 있고, 짱은 꼭 얼짱, 몸짱, 노래짱 중에 하나 이상이다.
7. 오디션은 등록된 연예 기획사의 지사 아무 곳에서나 볼 수 있고,
그 기획사와의 계약은 모든 해당 회사의 모든 지사에서 유효하다.

<조교가 올려준 정답>

Posted by 스니