2. Data Design and Implementaion

이세진·2022년 4월 3일
0

Computer Science

목록 보기
2/74

생성일: 2021년 9월 5일 오후 4:10
태그: ADT, Records

Data

  • The representation of information.
  • Data are the nouns.

Data Abstraction

  • Logical Level과 Implementaion Level을 구분

Data Encapsulation ⭐

  • Application Level과 Logical Level의 데이터를 구분
  • Application Level에서는 최소한의 부분만 공개 (information hiding)

Abstract Data Type(ADT)

  • 추상화된 데이터 타입
  • 우리가 지금까지 사용하고, 만들어온 Data Type이 ADT ⇒ 자료구조는 사용하는 사람과 만든사람이 다르다라는 것을 가정 그리고 사용하는 사람은 그 기 반의 모든것을 알 필요는 없다.

Data Structures

  • A collection of data elements

Data from 3 different levels

  • Application (or user) level modeling real-life data in a specific context.
  • Logical (or ADT) level abstract view of the domain and operations. What의 영역
  • Implementaion level specific representation of the structure to hold the data items, and the coding for operaions. How의 영역

추상화를 거쳐 상위 단계에 도달

4 Basic Kinds of ADT Operations

  • Constructor ⇒ create
  • Transformer ⇒ change
  • Observer ⇒ observe
  • Iterator ⇒ process, sequentially

Composite Data Type

  • 더이상 쪼개지지 않는 built-in simple type과는 다르다.
  • stores a collection of individual data components
  • allows the individual data components to be accessed

    Unstructured vs Structured

    • Unstructured는 순서 X (ex) class, struct
    • Structured는 순서 O (ex) arrays

Records

at the Logical Level

A record is a composite data type made up of a finite collection of not necessarily homogeneous

  • Struct와 Class가 이에 해당
  • 이와 달리 Array는 homogeneous

at the Application Level

  • 객체로 표현, 데이터들을 모아서 하나의 single name으로 표현

at Implementation Level

  • 메모리에서 공간을 할당 받는다.
  • Base address = 할당되는 첫번째 주소
  • Member-length-offset table = record의 각각의 멤버가 얼마나 메모리가 필요한지 나타내는 table

Array

  • structured composite data type
  • finite, fixed size( complie time에 결정됨)
  • homogeneous
  • Array는 assign operation 불가, 함수의 리턴값 불가(주소로 리턴 가능)
  • Array는 pass by reference 구조체는 pass by value
  • Address(index) = BaseAddress + Index * SizeOfElement

    Two - Dimensional Array

    https://gblobscdn.gitbook.com/assets%2F-LxaqUhwPNPE0iJCKfjJ%2F-MUgwfIORpkNs_kj5hcp%2F-MUh07ij1dQQlHh4gbqv%2Fimage.png?alt=media&token=f8067e45-aec8-4062-b778-352aa4f0ea92
    • C++에서는 다차원 Array를 메모리에 row order로 저장한다. (1줄의 row를 쭉 메모리에 저장후 다음 row 저장)

Inheritance & Polymorphism

  • Inheritance ⇒ reuse
  • Polymorphism (다형성) ⇒ 복잡한 상속 관계속에서 여러 객체중에 어떤 객체를 사용하는 것인지 모호해짐 ⇒ runtime에 결정된다.
profile
나중은 결코 오지 않는다.

0개의 댓글