필드(컴퓨터 사이언스)
Field (computer science)컴퓨터 공학에서 레코드라고 하는 여러 부분으로 구성된 데이터는 필드(데이터 필드)로 나눌 수 있습니다.관계형 데이터베이스는 데이터를 행이라고 하는 데이터베이스 레코드 집합으로 정렬합니다.각 레코드는 여러 필드로 구성됩니다.모든 레코드의 필드가 컬럼을 형성합니다.필드의 예: 이름, 성별, 머리색.
객체 지향 프로그래밍에서 필드(데이터 멤버 또는 멤버 변수라고도 함)는 클래스 또는 객체 내에서 캡슐화된 특정 데이터 조각입니다.정규 필드(인스턴스 변수라고도 함)의 경우 오브젝트의 각 인스턴스에는 인스턴스 변수가 있습니다.예를 들어,Employee
클래스에는Name
필드에는 직원마다 하나의 고유한 이름이 있습니다.정적 필드(클래스 변수라고도 함)는 모든 [1]인스턴스에서 공유되는 하나의 변수입니다.필드는 속성별로 추상화되므로 필드인 것처럼 읽고 쓸 수 있지만 이러한 필드는 getter 및 setter 메서드 호출로 변환할 수 있습니다.
고정 길이
고정 비트 수를 포함하는 필드를 고정 길이 필드라고 합니다.예를 들어 4바이트 필드에는 31비트 이진수 정수와 부호 비트(전체 32비트)를 포함할 수 있습니다.30바이트 이름 필드에는 보통 마지막에 공백이 채워진 사용자 이름이 포함될 수 있습니다.고정 길이 필드를 사용할 경우의 단점은 필드의 일부가 낭비될 수 있지만 최대 길이 대소문자에 대해서는 여전히 공간이 필요하다는 것입니다.또한 필드가 생략된 경우에도 누락된 필드의 패딩은 예를 들어 레코드 내에서 고정된 시작 위치를 유지하기 위해 계속 필요합니다.
가변 길이
가변 길이 필드가 항상 동일한 물리적 크기는 아닙니다.이러한 필드는 크기가 클 수 있는 텍스트 필드 또는 길이가 크게 다른 필드에 거의 항상 사용됩니다.예를 들어 PubMed와 같은 서지 데이터베이스는 출판 날짜나 저자 이름 같은 작은 필드들이 많지만, 그 길이가 크게 다른 추상들도 가지고 있다.일정 길이의 고정 길이 필드를 예약하면 추상화에 최대 길이가 적용되고 대부분의 레코드에서 공간이 낭비되기 때문에(특히 많은 기사에서 추상화 전체가 없는 경우) 비효율적입니다.
데이터베이스 구현에서는 일반적으로 특정 유형의 모든 레코드가 균일한 작은 크기를 가지도록 다양한 길이의 필드를 특별한 방법으로 저장합니다.그렇게 하면 퍼포먼스에 도움이 됩니다.반면 일반적인 파일 시스템에 저장되거나 네트워크를 통해 전송되는 등 직렬화된 형식의 데이터는 일반적으로 상당히 다른 성능 전략을 사용합니다.선택할 수 있는 요소는 레코드의 총 크기, 스토리지 미디어의 성능 특성 및 예상되는 액세스 패턴과 같은 요소에 따라 달라집니다.
데이터베이스 구현에서는 일반적으로 다음과 같은 방법으로 가변 길이 필드를 저장합니다.
- 문자열 자체 내에서 금지된 문자 또는 바이트의 시퀀스 뒤에 끝 문자가 이어집니다.이로 인해 같은 레코드 내의 이후 필드에 액세스하는 속도가 느려집니다.이러한 필드는 레코드의 시작부터 항상 같은 물리 거리에 있는 것은 아니기 때문입니다.
- URI, 파일 오프셋(및 길이) 또는 특정 장소의 레코드를 식별하는 키와 같은 다른 위치에 있는 데이터에 대한 포인터입니다.따라서 일반적으로 가변 길이 필드의 내용은 필요하지 않지만 필요한 프로세스는 느려집니다.
- 길이 프리픽스 뒤에 지정된 문자 수 또는 바이트 수가 표시됩니다.이렇게 하면 첫 번째 방법처럼 엔드 마커를 검색하는 것을 피할 수 있으며 두 번째 방법처럼 참조 인접성이 손실되는 것을 방지할 수 있습니다.한편, 최대 길이(일반적으로 고정 길이)의 프레픽스를 사용해 나타낼 수 있는 최대치)가 부과됩니다.또한 레코드는 여전히 길이가 다르므로 나중에 필드에 도달하려면 통과해야 합니다.
가변 길이 필드가 비어 있는 경우가 많으면 추가 최적화가 실행됩니다.
예
이 Person java 클래스에는 firstName, lastName 및 highInCentimes의 3가지 필드가 있습니다.
일반의 학급 사람인 { 사적인 스트링 이름; 사적인 스트링 성; 사적인 인트 높이(센티); }
「 」를 참조해 주세요.
레퍼런스
- ^ "Data fields". Sliccware. Retrieved 2011-08-12.