Presentation is loading. Please wait.

Presentation is loading. Please wait.

제 4 장 Record.

Similar presentations


Presentation on theme: "제 4 장 Record."— Presentation transcript:

1 제 4 장 Record

2 레코드(Record)의 개요 레코드(Record) idNo name sex
논리적으로 밀접한 관계를 유지하는 여러 데이타 원소들을 서로 다른 데이타 형태와 크기로 구성해야 할 경우의 자료 구조 하나 이상의 필드(field)로 구성 이질적(heterogeneous) 데이타 구조 예) 학번(idNo), 이름(name), 성별(sex) 필드 갖는 Student 레코드 Student idNo name sex

3 레코드(Record)의 정의 (1/2) 정보 구성 단위의 계층 문자 화일 필드 데이터 베이스 레코드

4 레코드(Record)의 정의 (2/2) 필드 레코드 의미 있는 연속된 문자를 기억 시키는데 필요한 몇 개의 바이트들의 묶음
서로 관계 있는 여러 필드를 한 개의 조로 묶어서 구성한 데이타 구조 일반적으로 보조 기억 장치에서의 입출력 단위로 사용

5 배열과 레코드의 차이점 배열 레코드 데이타 원소의 크기와 데이타 형이 동일하다(Homogeneous)
첨자를 이용하여 원소를 참조(reference) 예)item[k] 레코드 데이타 원소의 크기와 데이타 형이 서로 다르다(Heterogeneous) 필드를 이용하여 원소를 참조 예) Student.idNo

6 레코드의 표현 - 고정 길이 레코드 (1/2) 레코드의 가장 단순한 표현 방법
각 레코드에 대하여 일정 크기의 기억 공간을 할당 단점 레코드 삭제가 어려움 레코드의 이동을 요구 블록의 크기가 일정 크기의 정수배가 아닐 경우 부가적 블록 액세스를 요구

7 레코드의 표현 - 고정 길이 레코드 (2/2) 예) 예금 레코드 branch Name account Number
customer Name balance 레코드 0 레코드 1 레코드 2 레코드 3 레코드 4 레코드 5 20바이트 4바이트 20바이트 4바이트

8 레코드의 표현 - 가변 길이 레코드 가변 길이 레코드가 필요한 경우 가변 길이 레코드의 구현 방법
한 화일 내에 여러 유형의 레코드 저장 한 화일 내에 가변 필드를 허용하는 레코드 저장 반복적 필드를 허용하는 레코드의 저장 가변 길이 레코드의 구현 방법 바이트 스트링 표현 고정 길이 레코드 이용

9 가변 길이 레코드의 표현 - 바이트 스트링 표현 (1/2)
가장 단순한 방법 각 레코드의 끝에 레코드 끝 기호(  )를 첨가 단점 삭제된 레코드의 기억 장소를 재사용하기 어렵다 일반적으로 크기가 증가하는 레코드에 대해서는 기억 장소를 할당하기 어렵다.

10 가변 길이 레코드의 표현 - 바이트 스트링 표현 (2/2)
예) 1 2 3 4

11 고정 길이 레코드의 이용- 예약 기억 장소 기법(1/2)
화일내의 최대 레코드 길이 만큼의 고정 레코드를 사용 사용되지 않는 기억 장소 의미 없는 값으로 채워진다 레코드 끝 기호로 채워진다 단점 대부분의 레코드 길이가 최대치와 근사하지 않을 경우 기억 장소가 낭비된다

12 고정 길이 레코드의 이용- 예약 기억 장소 기법(2/2)
예)

13 고정 길이 레코드의 이용- 포인터 기법(1/2) 포인터를 통하여 연결되는 고정 길이 레코드의 리스트로 가변 길이 레코드를 표현한다. 포인터 필드를 첨가한다. 예)

14 고정 길이 레코드의 이용- 포인터 기법(2/2) 단점 해결 방법 기억장소 확보 양을 예측하기 어렵다.
기본블록과 오버플로 블록으로 구분 관리

15 C 언어에서의 레코드 (1/3) 레코드의 선언 구조체 데이타형태를 선언 struct 구조체 선언명{ member 1의 선언;
member n의 선언; }

16 C 언어에서의 레코드 (2/3) 레코드 필드의 참조 참조 연산자 “ . ”를 사용 예) person.number = 1;
person.name = “Kim, SungSuk”; person.address = “Seoul Sungbuk-Gu”; person.tel = “ ”; person.sex = 0;

17 C 언어에서의 레코드 (3/3) 레코드 배열 배열의 각 원소가 레코드 원소로 구성된 경우 예)
struct Jusorok { int number; String name[20]; String address[100]; String tel[13]; int sex; } struct Jusorok person[100]; person [0] [2] … [98] [99] [100]


Download ppt "제 4 장 Record."

Similar presentations


Ads by Google