1. 명사의 자리

주어자리 Access to MD will be limited to on side street.
목적어자리 Many candidates expressed interesting
전치사 뒷자리 Officials are working to optimize a system for transporting (동명사) its products (+명사).
to 부정사 뒷자리 To receive compensation for your lost item, ~ .
소유격 뒷자리 Mr.Lee's persistence has resulted in employment offers.
관사 뒷자리 IG Corporation released a statement confirming its plans
형용사 뒷자리 GSL provides an affordable alternative.
be동사 뒷자리 Ms.Green is an employee in my company.
목적격 보어자리 Ms. Green named Parasite the best film
복합명사 명사+명사가 하나의 명사처럼 쓰임 ex) job openings.

 

2. 가산 명사/ 불가산 명사

1) 가산 명사는 반드시 한정사(관사, 소유격)와 함께 쓰거나 복수형으로 쓰여야 한다
2) 불가산 명사는 복수, a, an 이 올 수 없다.

불가산 명사
knowledge 지식
furniture 가구
equipment 장비
stationery 문구류
ticketing 발권
clothing 의류
machinery 기계
advertising 광고
evidence 증거
access 접근
advice 조언
information 정보
luggage/baggage 수하물
consent 동의
support 지원

 

아두이노 나노가 업그레이드되어 나노 패밀리 시리즈 보드들을 출시했다.

저전력 고성능의 프로세서가 사용되며 WIFI , BLE 등의 기능들을 지원하는데 ,
나는 출시된 보드들 중 ArduinoBLE 라이브러리를 사용해 볼 것이다.
사용된 보드는 아두이노 나노33 IOT 지만 에브리를 제외한 다른 보드에서도 사용이 가능하다.
패밀리로 출시된 보드들의 스펙은 아래와 같다

보드이름 마이크로 컨트롤러 스펙 특징
아두이노 나노 every Atmega4809 20MHz/ 48KB/ 6KB, 8Bit 아두이노 나노에 비해 성능 향상, 5V I/O 사용
아두이노 나노 33 IOT SAMD21G18A 48MHz/ 256KB
/ 32KB, 32Bit
Arm Coretex M0 아키텍처, NINA W102 (ESP32 기반 WIFI, BLE), 6축 IMU, 3.3V I/O 사용
아두이노 나노 33 BLE nRF 52840 64MHz/ 1MB
/ 256KB, 32Bit
Arm Coretex M4F 아키텍처, NINA B306 BLE 칩셋, 6축 IMU, 3.3V I/O 사용
아두이노 나노 33 BLE Sense nRF 52840 64MHz/ 1MB
/ 256KB, 32Bit
Arm Coretex M4F 아키텍처, NINA B306 BLE 칩셋, 9축 IMU, 3.3V I/O 사용

 


1. 아두이노 IDE 세팅

기본적으로 프로그래밍은 아두이노 IDE를 사용했으며 다운을 받은 뒤 추가적인 설치를 하도록 한다.

Arduino IDE 설치 공식 사이트

설치를 끝낸 후 아두이노를 실행하면 다음과 비슷한 화면이 뜰 것이다.

 

1-1 ) 아두이노 나노 33 IOT 보드 설정

프로그래밍을 하기 전에 아두이노 IDE에 보드 설정을 해야하는데 기본적인 보드들은 툴>보드에 리스트 중에서 찾아볼 수 있으나, Nano 33 IOT 는 툴>보드>보드매니저에서 검색을 통해 추가할 수 있다. 혹은 보드 연결시, 인식한 보드 정보를 찾고 하단 알림창을 통해 바로 다운받을 수도 있다.

사진에서는 이미 설치가 되어있다. 'nano 33' 을 검색하여 'Nano 33 IOT는 Arduino SAMD Boards (32-bits Cortex-M0+) by Arduino' 를 설치한다. 다시 보드 탭에 들어가보면 추가된 정보 확인이 가능하다.

 

1-2) ArduinoBLE 라이브러리 추가

BLE 연결를 하기 위해 라이브러리를 추가적으로 설치한다.

툴> 라이브러리 관리 탭을 누르고 'arduinoBLE' 를 검색한 후 'ArduinoBLE by Arduino'를 설치한다. 
그리고 최상단에 '#include <ArduinoBLE.h>' 를 작성하여 설치된 라이브러리를 사용할 수 있도록 해준다.


2. ArduinoBLE 기본 코드 

BLEService CountingService("19B10000-E8F2-537E-4F6C-D104768A1214");
BLEStringCharacteristic CountingChar("19B10001-E8F2-537E-4F6C-D104768A1214",BLEWrite|BLERead | BLENotify, 10);

2-1) Service(서비스)와 Characteristic(특성)

Service 와 Characteristic의 UUID를 지정한다. 하나의 Service에 여러개의 Characteristic를 가질 수 있다. 


위 코드의 Characteristic은 String값을 가지므로 코드 끝에 추가적으로 길이를 지정해야한다. ex) 10
String을 제외한 Bool, Int Char 등의 값을 가진 Characteristic 로 변경하고 싶은 경우,  'BLEStringCharcteristic' 부분을 원하는 속성으로 변경한 뒤 길이지정 값을 빼주면 된다.
Parameter, 즉 BLEWrite(쓰기), BLERead(읽기), BLENotify(읽기반복) 또한 추가 변경 가능하다.

다음은 setup 문에서 추가해야할 구문이다.

Serial.begin(9600);

if (!BLE.begin()) {
    Serial.println("starting BLE failed!");

    while (1);
  }

  BLE.setLocalName("QuitSmocking");
  BLE.setAdvertisedService(CountingService); 
  CountingService.addCharacteristic(CountingChar);
  BLE.addService(CountingService);

  BLE.advertise();
  
Serial.println("Bluetooth device active, waiting for connections...");


2-2) 신호 송출

BLE모듈의 동작을 확인한다.  잘못되는 경우 실패했음을 화면으로 알린다.

Service 의 이름과 UUID, 추가할 Characteristic을 정한 뒤, 마지막으로 전체적인 Service를 세팅한다.
그리고 advertise 신호를 내보내, BLE 기기를 주변에 알린다.

 

다음은 loop문이다.

BLEDevice central = BLE.central();

if (central) {
	Serial.print("Connected to central: ");
	Serial.println(central.address());
    
    while(central.connected()){
	  /*쓰기*/
      CountingChar.writeValue((String)Counting);
	  /*읽기*/
      if(CountingChar.written()) {
          if (CountingChar.value()) {
              int val = atoi(CountingChar.value().c_str());
              Counting=val;

              Serial.print("Counting: ");
              Serial.println(val);
          }//value
      }//written
  }//connected
}//central

 

2-3) 연결 성공

연결이 성공적으로 이루어지면, 연결된 기기의  Mac 주소를 출력한다. 
이후 연결된 상태 동안에 실행할 코드를 작성해나가면 된다.

2-4) 쓰기
BLE모듈이 연결된 기기에 데이터를 쓸 경우, 설정한 Characteristic의 자료형에 맞추어 전송할 값을 넣는다.
여기선 설정한 자료형이 String 이었으므로, int 형의 Counting 변수를 String 으로 형변환하여 전송했다.

2-5) 읽기
BLE 모듈이 연결된 기기가 쓴 데이터를 읽는 경우, 값의 유무를 판별한 후 읽어온다.
가져온 데이터는 CountingChar.value 이다.

나는 가져온 값을, int형으로 쓰려는데 유니코드로 출력이 되어 가져온 값을 String으로 바꾼 후 다시 int형으로 바꾸는 작업을 했다. 여러 시도 끝에 위와 같은 코드를 이용했으나 더 간단한 코드가 있을 것이다. 

1. 결합확률

1) 결합확률 : 사건 X, Y가 동시에 발생할 확률 

2) 이산형 결합 확률분포 :  두 확률변수 X 와 Y가 동시에 각각 x,y 값을 가질 확률

$f(x,y)=P(X=x,Y=y)$

$0\leq f(x,y)\leq 1$

$\sum_{x} \sum_{y} f(x)=1$

 

2) 연속형 결합 확률분포 :

$P(a<X<b , c<Y<d)=\int_{a}^{b}\int_{c}^{d}f(x,y)dydx$

$\int_{-\infty }^{\infty }\int_{-\infty }^{\infty }f(x,y)dydx=1$

$0\leq f(x,y)$

 

3) 예제1 : 주사위를 두번 던지는 행위에서 눈의 최대치 X 와 눈의 최소치 Y의 결합확률분포

X: 1,2,3,4,5,6

Y: 1,2,3,4,5,6

확률변수 $X,Y$가 $x \leq y$ 값을 만족하는 확률 

①$P_{XY}(1,1)$ 는 $x=y$를 만족하며 $= \frac{1}{6}\times \frac{1}{6}=\frac{1}{36}$

 

②$P_{XY}(2,1)$ 는 $x>y$를 만족하며 $(2,1), (1,2)$ 의 경우의 수가 있으므로
 $= 2\times \frac{1}{6}\times \frac{1}{6}=\frac{2}{36}$

 

③$P_{XY}(0,1)$ 는 $x>y , x=y$를 만족하지 못하므로 0

 

 

2. 주변확률

1) 주변확률 : 결합되지 않는 개별 사건의 확률 P(A) 또는 P(B)

 

2) 이산형

$f_X(x)= \sum_{y} f(x,y)$

$f_Y(y) = \sum_{x} f(x,y)$

 

2) 연속형

$f_X(x)= \sum \int_{-\infty }^{\infty }f(x,y)dy$

$f_Y(y)= \sum \int_{-\infty }^{\infty }f(x,y)dx$

 

2) 예제 1 이어서 주변확률분포 구하기

&$f_X(x) = \sum_{y=1}^{x-1}\frac{2}{36}+\frac{1}{36}=\frac{1+2(x-1)}{36}, x=1,....,6$

$f_Y(y) = \sum_{x=y+1}^{6}\frac{2}{36}+\frac{1}{36}=\frac{1+2(6-y)}{36}, y=1,....,6$

 

3) 예제 2 : 결합확률분포함수 $f(x,y)= c(x+y), x=0,1,2,3,4; y=0,1,2,3$ 

확률분포함수가 되도록 상수 c와 주변확률분포, 기댓값을 구하라

① $\sum_x\sum_yf(x,y) = c\sum_x^4\sum_y^3f(x+y) = 70c= 1 \rightarrow c=\frac{1}{70}$

② $f_X(x) = \frac{1}{70}\sum_{y=0}^3(x+y)=\frac{4x+6}{70} , x=0,1,2,3,4$

$f_X(x) = \frac{1}{70}\sum_{x=0}^4(x+y)=\frac{5x+10}{70} , y=0,1,2,3$

 

3. 조건부확률

1) 조건부확률 : 사건 B가 사실일 경우 사건 A에 대한 확률 

$P(A|B)=\frac{P(A,B)}{P(B)}$

 

2) 예제1 이어서 Y=y일 때, X의 조건부확률분포

$f(x|y)= \frac{f(x,y)}{f_Y(y)}= \frac{\frac{1}{36}}{\frac{1+2(6-y)}{36}} = \frac{1}{1+2(6-y)} , x=y$

$f(x|y)= \frac{f(x,y)}{f_Y(y)}= \frac{\frac{2}{36}}{\frac{1+2(6-y)}{36}} = \frac{2}{1+2(6-y)} , x>y$

 

 

4. 독립

1) 독립 : 두 사건 A, B가 $P(A,B) = P(A)P(B)$ 의 관계가 성립하면 둘은 서로 독립이라고 정의한다

 

2) 예제 1 이어서 X,Y의 독립성 검토

$f(1,1) = \frac{1}{36} , f_X(1) = \frac{1}{36} , f_Y(1) = \frac{11}{36}$

 

2) 예제 1 이어서 X,Y의 독립성 검토

$f(1,1) = \frac{1}{36} , f_X(1) = \frac{1}{36} , f_Y(1) = \frac{11}{36}$ → 독립x

 

2) 예제 2 주사위를 두번 던지는 시행에서 3이상 눈의 개수 X와 짝수 눈의 개수 Y의 독립성 검토

 

 

 

 

1. 관계 데이터 연산

1) 데이터모델 : 데이터 구조 + 연산 + 제약조건

 

2) 관계 데이터 연산

-관계 데이터 모델의 연산

-원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행

-관계 대수와 관계 해석으로 분류, 기능과 표현력 측면에서 능력은 동등

 

3) 관계 대수와 관계 해석

(1)관계 대수 

-데이터 처리 과정을 순서대로 기술

-절차언어

-릴레이션을 처리하는 연산자들의 모임 : 일반 집합 연산자와 순수 관계 연산자로 분류

-폐쇄 특성 (Closure property) 이 존재 : 피연산자 = 연산결과 = 릴레이션

 

(2)관계 해석 

-처리를 원하는 데이터가 무엇인지 기술

-비절차언어

-투플 관계 해석

-도메인 관계 해석

 

 

2. 관계 대수 : 일반 집합 연산자

1) 일반 집합 연산자 : 릴레이션이 투플의 집합이라는 개념을 이용한 연산자

2) 일반 집합 연산자의 특성

-2개의 릴레이션 대상 연산

-합병 가능 조건을 만족 = 두 릴레이션의 차수와 도메인이 같아야 함

 

3) 합집합(Union)

- 두 릴레이션 R, S 의 합집합

-결과 릴레이션의 카디널리티는 릴레이션 R 과 S 의 카디널리티를 더한것 보다 같거나 적음

-교환적, 결합적 특징

 

4) 교집합(Intersection)

-두 릴레이션 R,S의 교집합

-결과 카디널리티는 릴레이션 R과 S의 어떤 카디널리티보다 크지 않음

-교환적, 결합적 특징

 

5) 차집합(Difference)

-두 릴레이션 R,S의 차집합

-R-S 의 카디널리티는 릴레이션 R의 카디널리티와 같거나 적음

- 교환적, 결합적 특징

 

6) 카티션 프로덕트(Cartesian product)

-두 릴레이션 R,S의 카디널 프로덕트 $R\times S$

-릴레이션 R에 속한 투플과 릴레이션 S에 속한 투플을 모두 연결하여 새로운  투플로 결과 릴레이션 구성

-결과 카디널리티는 카디널리티 R과 S의 카디널리티를 곱한 것과 같음

-차수는 릴레이션 R과 S의 차수를 더한 것과 같음

-교환적 , 결합적 특징

 

 

3.관계 대수 : 순수 관계 연산자

1) 순수 관계 연산자 : 릴레이션의 구조와 특성을 이용하는 연산자

 

2) 셀렉트(Select)

- 조건을 만족하는 투플만 선택하여 결과 릴레이션 구성

-하나의 릴레이션으로 연산수행

- 수학적 표현법 : $\sigma _{조건식}(릴레이션)$

- 데이터 언어적 표현법 : 릴레이션 where 조건식

-조건식은 비교, 논리 연산자 이용해 작성

-결과 릴레이션은 연산 대상 릴레이션의 수평적 부분집합

- 교환적 특징 있음

 

ex) $\sigma _{등급='gold'}(고객)$

  고객 where 등급 = 'gold'

 

3) 프로젝트 (Project)

-릴레이션에서 선택한 속성 값으로 결과 릴레이션 구성

-하나의 릴레이션으로 연산

-수학적 표현법 : $\pi _{속성리스트}(릴레이션)$

- 데이터 언어적 표현법 : 릴레이션[속성리스트]

-결과 릴레이션에서 동일한 투플은 중복되지 않고 한번만 나타남

-결과 릴레이션은 연산 대상 릴레이션의 수직적 부분집합

 

ex) $\pi _{이름, 등급, 적립금}(고객)$

  고객[이름, 등급, 적립금]

 

4) 조인(Join)

-두 릴레이션을 조합하여 결과 릴레이션 구성

-조인 속성 값이 같은 투플만 연결하여 생성된 투플을 결과 릴레이션에 포함

-표현법 : $릴레이션1 \bowtie 릴레이션2$

-자연조인이라고도 함 $\bowtie _{N}$

(1) 세타조인 (Theta join)

-자연 조인에 비해 더 일반화된 조인

-조인 조건을 만족하는 두 릴레이션의 모든 투플을 연결하여 결과 릴레이션 구성

-결과 릴레이션의 차수는 두 릴레이션의 차수 더한 것

-표현법: $릴레이션1 \bowtie _{A\theta B} 릴레이션2$ : $\theta $는 비교연산자 의미

 

(2) 동일 조인(Equi-join) : $\theta $ 연산자가 '=' 인 세타조인

 

(3) 세미조인 (Semi-join)

-릴레이션2를 조인 속성으로 프로젝트 연산 후 → 릴레이션1에 자연조인

-불필요한 속성을 미리 제거하여 비용 절감 장점

-교환적 특징 없음

-$R\propto S$

 

(4) 외부조인 (Outer join)

-자연 조인 연산에서 제외되는 투플도 결과 릴레이션에 포함시키는 조인

- $R \propto^+ S$

5) 디비전(Division)

-릴레이션2의 모든 투플과 관련된 릴레이션1의 투플로 결과 릴레이션 구성

-릴레이션 1이 릴레이션2의 모든 속성 포함 필요, 같은 도메인이어야 함

-표현법 : 릴레이션 1 ÷ 릴레이션 2

 

 

'School Activities > Database' 카테고리의 다른 글

관계 데이터 모델  (0) 2019.10.14
데이터 모델링  (0) 2019.10.14
데이터베이스시스템  (0) 2019.10.14
데이터베이스관리시스템  (0) 2019.10.13
데이터베이스 기본개념  (0) 2019.10.13

 

1. 관게 데이터 모델

1) 관계 데이터 모델의 기본 개념

-개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델

-하나의 개체에 대한 데이터를 하나의 릴레이션에 저장

 

2) 관계 데이터 모델의 기본 용어

(1) 릴레이션(Relation) : 하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것, 파일과 대응

(2) 속성(Attribute) : 릴레이션의 열, 애트리뷰트, 필드와 대응

(3) 투플(Tuple) : 릴레이션의 행, 레코드와 대응

(4) 도메인(Domain): 

- 하나의 속성이 가질 수 있는 모든 값의 집합

- 속성 값 입력, 수정 시 적합성 판단의 기준이 됨

-속성의 특성을 고려한 데이터 타입으로 정의됨

(5) 널(Null) : 속성 값이 미정이거나 없음을 표현함

(6) 차수 (Degree) : 하나의 릴레이션에서 속성 전체 개수

(7) 카디널리티(Cardinality) : 하나의 릴레이션에서 투플 전체 개수

차수는 6, 카디널리티는 4

 

 

2. 릴레이션

1) 릴레이션의 구성

(1) 릴레이션 스키마 ( = 릴레이션 내포 ) 

-릴레이션의 논리적 구조

-릴레이션 이름 + 속성 이름으로 정의

  ex) 고객(고객 아이디, 고객 이름, 나이, 등급, 직업, 적립금)

- 정적인 특성

(2) 릴레이션 인스턴스 ( = 릴레이 외연 )

-어느 한 지점에서 ( 현실 세계에서, 데이터는 계속 변하므로)  릴레이션에 존재하는 투플들의 집합

-동적인 특징

 

2) 데이터베이스의 구성

-데이터베이스 스키마 : 데이터베이스의 전체구조, 릴레이션 스키마의 모음

-데이터베이스 인스턴스 : 릴레이션 인스턴스의 모음

 

3) 릴레이션의 특성 → 집합의 특성 : 무순서로 데이터의 중복 유무만 본다

-투플의 유일성

-투플의 무순서

-속성의 무순서 : 도메인으로 구별

-속성의 원자성: 하나의 속성에는 하나의 데이터만 들어갈 수 있다. ex) 취미 속성 내 n개의 값 

 

 

3. 키

1) 키

: 릴레이션에서 투플을 유일하게 구별하는 속성 혹은 속성들의 집합

 

2) 키의 특성

-유일성( Uniqueness) : 하나의 릴레이션에서 모든 투플은 서로 다른 값을 가져야 한다

-최소성 (Minimality) : 꼭 최소한의 속성들로만 키를 구성한다

 

3) 키의 종류

①슈퍼키(Super Key) : 유일성을 만족하는 속성집합

ex) 고객아이디, (고객아이디, 고객이름) , (고객이름, 주소) 

②후보키(Candidate key) : 유일성과 최소성을 만족하는 속성집합

ex) 고객아이디, (고객이름, 주소)

③기본키 : 후보키 중 기본적으로 사용하기 위해 선택한 키

ex) 고객아이디

④대체키 : 기본키 외의 후보키

ex) (고객이름, 주소)

⑤외래키

-다른 릴레이션의 기본키를 참조하는 속성집합

-릴레이션들간 관계 표현

- 외래키 ex ) 주문고객 → (참조) → 기본키 ex) 주문아이디

-참조하는 속성과 외래키 속성의 이름은 달라도 도메인은 같아야함

-하나의 릴레이션에는 외래키가 여러개 존재할 수 있으며

-외래키를 기본키로 사용할 수도 있음

- 같은 릴레이션의 기본키를 참조하는 외래키도 정의 가능

-외래키의 속성은 널 값을 가질 수도 있음

 

 

 

4. 관계 데이터 모델의 제약

무결성 제약조건(Integrity constraint)

-개체 무결성 제약조건 : 기본키를 구성하는 모든 속성은 값을 가질 수 없는 규칙 , 저장할 수 없으므로

-참조 무결성 제약조건 : 외래키는 참조할 수 없는 값을 가질 수 없는 규칙 → 유령고객

외래키 속성이 Null 값을 가질 경우 > 참조 무결성 제약조건을 위반한 것은 아님

 

 

 

'School Activities > Database' 카테고리의 다른 글

관계 데이터 연산  (0) 2019.10.14
데이터 모델링  (0) 2019.10.14
데이터베이스시스템  (0) 2019.10.14
데이터베이스관리시스템  (0) 2019.10.13
데이터베이스 기본개념  (0) 2019.10.13

 

1. 데이터모델링과 데이터모델의 개념

1) 데이터 모델링

- 현실세계 데이터 → (개념적 모델링) 컴퓨터 세계 데이터 →(논리적 모델링)  데이터베이스 저장

- 추상화(Abstraction)

 

2) 2단계 데이터 모델링

-개념적 데이터모델링(Conceptual modeling) :  현실 세계 데이터를 개념 세계로 옮기는 작업

-논리적 데이터모델링(Logical modeling) : 개념세계데이터를 데이터베이스에 저장하는 구조로 표현하는 작업

 

3) 데이터 모델

- 데이터 모델 : 데이터 모델링의 결과물을 표현하는 도구

- 데이터 모델의 구성 : 연산, 데이터구조, 제약조건

 

- 개념적 데이터 모델 : 현실세계를 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구

ex) 개체-관계 모델

- 논리적 데이터 모델 : 개념적 구조를 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구

ex) 관계 데이터 모델

 

 

2. 개체-관계 모델

1) 개체-관계 모델 : 개체와 개체간 관계를 이용해 현실세계를 개념적 구조로 표현한 것 → 개체, 속성, 관계

2) 개체-관계 다이어그램(E-R model) : 개체-관계 모델을 이용해 모델링한 결과물을 그림으로 나타낸 것

 

3) 개체(Entity)

(1) 의미

- 현실세계를 운영하는데 꼭 필요한 사물, 사람과 같이 구별되는 것

- 저장 가치 있는 중요 데이터를 가지고 있음

- 구별되는 이름, 고유 특성, 상태 (=속성) 이 있으며 반드시 그 속성은 1개 이상이어야 함

- 파일 구조의 레코드(record)와 대응

- E-R 다이어그램에서 사각형으로 표현

 

(2) 개체 타입과 개체 인스턴스

-개체 타입(Entity type) : 개체를 고유 이름과 속성들로 정의한것, =파일구조의 레코드 타입과 대응

-개체 인스턴스(Entity instance) : 속성이 실제 값을 가짐으로써 실체화된 개체 = 레코드 인스턴스와 대응

-개체 집합(Entity set) : 특정 개체 타입에 대한 개체 인스턴스들을 모아놓은 것

4) 속성

(1) 의미

-개체나 관계가 가지고 있는 고유 특성

-의미 있는 데이터의 가장 작은 논리적 단위

-파일 구조의 필드(field)와 대응

-E-R 다이어그램에서 타원으로 표현

 

(2) 분류

① 단일 값 속성과 다중 값 속성

-단일 값 속성: 값을 하나만 가질 수 있는 속성 ex) 이름, 적립금

-다중 값 속성 : 값을 여러개 가질 수 있는 속성,  E-R다이어그램에서 이중 타원으로 표현 

ex) 전화번호, 취미, 친구, 전공

② 단순 속성과 복합 속성

-단순 속성 : 의미를 더는 분해할 수 없는 속성  ex) 적립금, 책 이름, 가격

-복합 속성: 의미를 분해할 수 있는 속성 ex) 주소, 생년월일

③ 유도 속성

-기존의 다른 속성의 값에서 유도되어 결정되는 설정

- 값이 별도로 저장되지 않음

- E-R 다이어그램에서 점선 타원으로 표현

 ex) 나이← 생년월일 알면 유도 가능 , 근무연수 ←입사연수만 알면 됨

 

(3) 널 속성 (Null attribute)

- 널 속성 : 널 값이 허용되는 속성

- 널 값 : 아직 결정되지 않았거나 존재하지 않는 값 ↔ 공백, 0 과는 의미가 다르다

 

(4) 키속성

-각 개체 인스턴스를 식별하는데 사용되는 속성

-모든 개체 인스턴스의 키 속성 값은 다름

-둘 이상이 될수도 있음

-E-R 다이어그램에서 밑줄 표현

 

6) 관계(Relationship)

(1) 관계

-개체-개체 간 연관성

-개체 집합들 사이의 대응관계, = 매핑

- 관계 내에서도 속성을 가질 수 있음

-E-R다이어그램에서 마름모로 표현

 

(2) 관계의 유형① : 관계에 참여하는 개체 타입의 수 기준

-이항관계 , 삼항관계, 순환관계

 

(3) 관계의 유형② : 매핑 카디널리티 기준

-매핑 카디널리티(Mapping Cardinality)

관계를 맺는 두 개체집합에서 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수

-일대일관계 ex) 부부결혼

-일대다관계 ex) 부서-사원, 지도교수-학생

-다대다관계 ex) 고객-책, 과목-학생

 

(4) 관계의 참여 특성

-필수적 참여(전체 참여) : 모든 개체 인스턴스가 관계에 반드시 참여해야 함을 의미, 이중선으로 표현

ex) 모든 학생은 수강신청을 해야함 , 모든 고객은 책을 반드시 구매해야함

-선택적 참여(부분 참여) : 개체 인스턴스 중 일부만 관계 참여해도 되는 것을 의미

ex) 고객이 구매하지 않은 책이 존재할 수 있음

(5) 관계의 종속성

-약한개체 : 다른 개체 존재 여부에 의존적, 이중 사각형

-강한개체 : 다른 개체 존재 여부를 결정, 이중 마름모

-특징

강한개체-약한개체 관계는 일대다, 약한개체가 필수적으로 참여

약한개체는 강한 개체의 키를 포함하여 키를 구성

ex) 직원 개체와 부양가족 개체 사이의 부양관계

부양가족 : 직원이 근무해야만 부양 가능, 존재하므로 관계 참여에 필수적

직원 : 관계 참여 부분적, 부양할 가족이 없는 직원도 있으므로 모든 직원이 다 참여할 필요 없음

 

 

3. 논리적 데이터 모델

1) 관계 데이터 모델

-일반적으로 많이 사용됨

-2차원 테이블 형태

 

2)계층 데이터 모델

-트리형태

-루트 역할을 하는 개체가 존재하고 사이클이 존재하지 않음

-개체간 상하관계 성립

-두 개체 사이에 하나의 관계만 정의 가능

-다대다 관계를 직접 표현할 수 없음

-복잡한 구조, 어려운 삽입, 삭제, 검색

 

3)네트워크 데이터 모델

-그래프 형태

-개체 간 일대다 관계만 허용 : 오너/ 멤버

-두 개체 사이에 여러 관계 정의 가능, 이름으로 구별

-다대다 관계를 직접 표현할 수 없음

-복잡한 구조, 어려운 삽입,삭제,수정

 

 

 

'School Activities > Database' 카테고리의 다른 글

관계 데이터 연산  (0) 2019.10.14
관계 데이터 모델  (0) 2019.10.14
데이터베이스시스템  (0) 2019.10.14
데이터베이스관리시스템  (0) 2019.10.13
데이터베이스 기본개념  (0) 2019.10.13

+ Recent posts