오늘은 Data의 종류에 대해 알아보고자 한다.
Data 의 종류에는 정형(Structured), 반정형(Semi-structured), 비정형(Unstructured) 이 있다.
Structured data 정형데이터
주로 관계형 데이터로 불림
테이블에 표기가 가능한 데이터 : 숫자, 문자
Strict schema 를 준수하는 데이터 이므로 모든 데이터에 동일한 필드 또는 속성이 있다.
공유 스키마를 사용하면 SQL(Structured Query Language) 와 같은 쿼리 언어로 이러한 유형의 데이터를 쉽게 검색 할 수 있다.
CRM system, 예약 및 재고관리와 같은 어플리케이션에 적합
모든 데이터가 동일한 format을 따름 : 스프레드 시트, CSV
일관적인 구조 떄문에 새 구조로의 진화가 어려움
Structured data, sometimes referred to as relational data, is data that adheres to a strict schema, so all of the data has the same fields or properties. The shared schema allows this type of data to be easily searched with query languages such as SQL (Structured Query Language). This capability makes this data style perfect for applications such as CRM systems, reservations, and inventory management.
Structured data is often stored in database tables with rows and columns with key columns to indicate how one row in a table relates to data in another row of another table. The below image shows data about students and classes with a relationship to grades that ties them together.
Structured data is straightforward in that it's easy to enter, query, and analyze. All of the data follows the same format. However, forcing a consistent structure also means evolution of the data is more difficult as each record has to be updated to conform to the new structure.
Semi-structured data 반정형 데이터
정형 데이터보다 덜 조직화 되어있고, 필드가 테이블, 행, 열에 딱 맞게 저장되지 않는다. 테이블이 없다.
연산이 불가능한 데이터
정형데이터는 대용량 데이터를 쿼리할때 성능이 저하된다. 특히 OOP 데이터 구조에 적합하지 않다. ▶ 따라서 NoSQL 을 사용함.
데이터의 계층과 구조를 명확히 하는 tag 가 포함 된다 (Key-Value Pair)
비 관계형 데이터 베이스 혹은 NoSQL 이라 한다.
No SQL Data Model
1) Key - Value Databases : Key-Value 쌍에 데이터를 저장하므로 더 빨리 쿼리할 수 있다. No query Language 대신에 Simple Command 인 GET, PUT, DELETE 같은 명령어를 사용함.
2) Graph : Point to other nodes, Links of relationships : 쿼리 속도를 높일 수 있는 관계링크를 만든다.
3) Document : JSON, XML, 어떠한 구조도 원하는대로 생성가능
**[용어] Query : 데이터 베이스에 정보를 요청하는 것, 데이터베이스나 파일의 내용 중 원하는 내용을 검색하기 위하여 몇 개의 코드(code)나 키(Key)를 기초로 질의하는 것을 말함.
serialization 언어에 의해 정의됨 : 소프트 웨어 개발자의 경우 serialiazation 언어를 사용하여 메모리에 저장된 데이터를 파일에 작성하고, 다른시스템으로 전송하며, 구문 분석하고 판독한다.
다른 시스템이나 다른 인프라스트럭쳐와의 데이터 송수신이 주로 serialization 언어로 이루어 진다.
Semi-structured data is less organized than structured data, and is not stored in a relational format, as the fields do not neatly fit into tables, rows, and columns. Semi-structured data contains tags that make the organization and hierarchy of the data apparent - for example, key/value pairs. Semi-structured data is also referred to as non-relational or NoSQL data. The expression and structure of the data in this style is defined by a serialization language.
For software developers, data serialization languages are important because they can be used to write data stored in memory to a file, sent to another system, parsed and read. The sender and receiver don’t need to know details about the other system, as long as the same serialization language is used, the data can be understood by both systems.
Semi-structured Data 의 common format (Data Serialization Language)
- Human Readable
- Data Serialization Languages help you transfer data quickly and easily b/t different systems and processes
1. XML (Extensible MarkUp Language)
XML, or extensible markup language, was one of the first data languages to receive widespread support. It's text-based, which makes it easily human and machine-readable. In addition, parsers for it can be found for almost all popular development platforms. XML allows you to express relationships and has standards for schema, transformation, and even displaying on the web.
XML expresses the shape of the data using tags. These tags come in two forms: elements such as <FirstName> and _attributes that can be expressed in text like Age="23". Elements can have child elements to express relationships - such as the <Hobbies> tag above which is expressing a collection of Hobby elements.
XML is flexible and can express complex data easily. However it tends to be more verbose making it larger to store, process, or pass over a network. As a result, other formats have become more popular.
Parser 이용
Tag 사용 : <FirstName> </FirstName> = element
유연하며 복잡한 데이터를 쉽게 표현이 가능,
장황해 지기 쉽다는 단점이 있다 : 네트워크를 통해 저장, 처리, 전달하는 과정에서 부하가 늘어남.
2. JSON(JavaScript Object Notation)
JSON – or JavaScript Object Notation, has a lightweight specification and relies on curly braces to indicate data structure. Compared to XML, it is less verbose and easier to read by humans. JSON is frequently used by web services to return data.
Notice that this format isn't as formal as XML. It's closer to a key/value pair model than a formal data expression. As you might guess from the name, JavaScript has built-in support for this format - making it very popular for web development. Like XML, other languages have parsers you can use to work with this data format. The downside to JSON is that it tends to be more programmer-oriented making it harder for non-technical people to read and modify.
XML 보다 간단한 사양, {} 를 사용해서 데이터 구조를 표시
사용자가 더 읽기 쉬움
웹서비스에서 데이터 반환에 많이 사용함.
XML 보다는 형식적이지 않음
Key-Value 모델에 가까움
단점 : 프로그래머 중심적이라 기술자가 아닌경우 읽고 수정하기가 어려움
3. YAML(YAML Ain't Markup Language)
YAML – or YAML Ain’t Markup Language, is a relatively new data language that’s growing quickly in popularity in part due to its human-friendliness. The data structure is defined by line separation and indentation, and reduces the dependency on structural characters like parentheses, commas and brackets.
This format is more readable than JSON and is often used for configuration files that need to be written by people but parsed by programs. However, YAML is the newest of these data formats and doesn't have as much support in programming languages as JSON and XML.
사람이 읽기쉽고 상대적으로 최근에 나온 언어,
데이터구조는 indent 와 한줄뜨우기로 정의 됨 : 괄호를 쓰지 않음
Json 에 비해 Human readable
프로그래밍 언어를 많이 지원하지는 않음.
unstructured data
형태가 없으며 연산이 불가능한 데이터
사진이나 비디오 같은 파일에서 많이 사용됨
비디오 파일자체는 전체적인 구조를 보유하며 반구조적 메타데이터와 함께 제공될 수 있지만 비디오 자체를 구성하는 데이터는 비구조적이다.
The organization of unstructured data is ambiguous. Unstructured data is often delivered in files, such as photos or videos. The video file itself may have an overall structure and come with semi-structured metadata, but the data that comprises the video itself is unstructured. Therefore, photos, videos, and other similar files are classified as unstructured data.
Examples of unstructured data include:
-
Media files, such as photos, videos, and audio files
-
Office files, such as Word documents
-
Text files
-
Log files
-
social data : social media data