반응형

1. 키(Key)란?

 키(Key)는 데이터베이스에서 저장되어 있는 튜플을 유일하게 구분할 수 있는 식별자를 말합니다. 이런 식별자는 단일 속성 이나 속성들의 집합이 될 수 있습니다. 키의 종류로는 후보키, 기본키, 대체키, 외래키, 슈퍼키가 있습니다.

회원번호

이름

주민등록번호

나이 

성별 

0001 

강혜지

920504-2*****6 

27 

여 

0002 

박인호

931111-1*****5

26 

남 

0003

최민희 

890713-2*****4

30

0004 

민형석

921224-1*****7

27

- 슈퍼키(Super Key)튜플을 유일하게 구분할 수 있는 하나 이상의 속성들로 구성된 키를 뜻합니다. 유일성을 만족하지만 최소성은 만족하지 않습니다.

[예시]:  슈퍼키로 올 수 있는 조합은 (회원번호), (주민등록번호), (회원번호, 이름), (회원번호, 주민등록번호), (회원번호, 나이), (회원번호, 성별), (회원번호, 이름, 나이), (회원번호, 주민등록번호, 성별), (회원번호, 주민등록번호, 나이), (주민등록번호, 이름), (주민등록번호, 나이, 성별) 등등이 될 수 있습니다.

유일성: 각각의 튜플을 유일하게 구분하는 성질입니다. 예를들면 '성별'이란 속성의 경우 이 속성의 값을 가지고 검색하면 여러개의 튜플들이 검색되지만, '회원번호'의 경우 값을 통해서 검색하면 오로지 하나의 튜플만 찾아낼 수 있습니다. 타라서 '성별'은 유일성을 만족할 수 없지만, '회원번호'는 유일성을 만족합니다.

 

후보키(Candidate Key): 릴레이션에서 슈퍼키의 조건을 만족하면서, 튜플을 유일하게 구분하는데 필요한 최소한의 속성으로된 키입니다. 유일성최소성을 모두 만족되어야 후보키가 될 수 있습니다.

[예시]:  '회원번호', '주민등록번호'가 튜플을 유일하게 식별할 수 있습니다. 따라서 후보키는 '회원번호'와 '주민등록번호'가 됩니다.

 ※ 최소성: 최소한의 속성을 통해 각 튜플을 유일하게 구별해내는 성질입니다.

 

- 기본키(Primary Key): 후보키들 중에서 1개의 키를 선택한 것입니다. 기본키는 중복될 수 없으며, NULL을 가질 수 없습니다. 또한 후보키와 마찬가지로 유일성최소성을 만족해야 합니다.

[예시]:  후보키인 '회원번호', '주민등록번호' 둘 중에서 하나가 될 수 있습니다. '회원번호'를 기본키로 선택했다면, 기본키가 '회원번호'가 됩니다.

 

- 대체키(Alternate Key): 후보키 중에서 기본키를 제외한 속성들입니다.

[예시]:  후보키인 '회원번호'를 기본키로 설정했다면 '주민등록번호'가 대체키로 됩니다. 반대로 '주민등록번호'가 기본키라면 후보키는 '회원번호'가 됩니다.

 

- 외래키(Foreign Key):  한 릴레이션에서 다른 릴레이션을 참조할 때, 참조의 기준이 되는 속성입니다. 이는 참조하고자 하는 릴레이션의 기본키와 동일합니다. 그렇기에 외래키에서는 NULL이 올 수 없습니다. 다만 외래키의 속성명과 참조하는 릴레이션의 기본키 속성명이 일치하지 않아도 무방합니다.

 

 

 

 

2. 무결성 제약조건(Integrity Constraint)

무결성이란 데이터의 내용이 서로 모순되는 일이 없고, 데이터베이스에 걸린 제약을 완전히 만족하게 되는 성질을 뜻합니다. 이러한 무결성은 데이터베이스의 정합성과 안정성을 지켜줍니다. 무결성을 유지하기 위해 여러 제약조건들이 있는데, 제약조건에는 참조 무결성, 개체 무결성, 도메인 무결성, 이 있습니다.

- 개체 무결성: 기본키는 NULL이 올 수 없으며, 기본키를 구성하는 어떠한 속성값이라도 중복값이나 NULL값을 가질 수 없습니다.

- 참조 무결성: 참조할 수 없는 외래키 값은 가질 수 없습니다. 즉 외래키는 NULL값을 가질 수 없으며, 참조하는 릴레이션의 기본키와 동일해야합니다.

- 도메인 무결성: 각 속성값은 반드시 정의된 도메인(하나의 속성이 가질 수 있는 값들의 범위)만을 가져야합니다.

반응형

1. 관계형 데이터 모델(Relation Data Model)의 정의

관계 데이터 모델은 2차원 구조의 테이블 형태를 통해 자료를 표현하는 것을 말합니다.

[예시]

 회원번호

이름 

수강과목 

나이 

A0001

김영희

수학 

17

A0002

박선주

수학

13

A0003

한민석

국어

19

A0004

이철수

영어

15

A0005

 강현지

영어

18

 

2. 관계형 데이터 모델의 용어

- 릴레이션(Relation): 데이터들을 2차원 테이블의 구조로 저장한 것

- 속성(Attribute): 릴레이션의 열(=Column), 개체를 구성하는 속성들을 나타냅니다. 

 [예시] 회원번호, 이름, 수강과목, 나이

- 튜플(Tuple): 릴레이션의 행(=Row). 속성들의 집합이며 레코드(Record)라고도 부릅니다.

 [예시] 김영희, 박선주, 한민석, 이철, 강현지

- 차수(Degree): 릴레이션을 구성하는 속성의 수

 [예시] 위의 예시 테이블에서 차수는 4

- 카디널리티(Cardinality): 릴레이션에 입력된 튜플의 수

 [예시] 위의 예시 테이블에서 카디널리티는 5

- 도메인(Domain): 하나의 속성이 가질 수 있는 값들의 범위

- 널(Null): 정보 부재를 나타내기 위해 사용되는 특수한 데이터 값

- 릴레이션 스키마(Relation Schema): 릴레이션의 이름과 속성 이름의 집합(=릴레이션 스킴 =릴레이션 내포)

- 릴레이션 인스턴스(Relation Instance): 릴레이션의 어느 시점까지 입력된 튜플들의 집합(=릴레이션 외연)

 

3. 릴레이션의 특징

- 릴레이션의 튜플들은 모두 다르며, 유일한 존재입니다.

- 릴레이션의 튜플들 간의 순서는 의미가 없습니다.

- 릴레이션의 속성들 간의 순서는 의미가 없습니다.

- 튜플들의 삽입, 갱신, 삭제작업이 실시간으로 일어나므로 릴레이션은 수시로 변합니다.

- 속성은 더이상 분해할 수 없는 원자값만 가집니다.

 

4. 사상(Mapping Rule)

E-R다이어그램에서 관계형 데이터베이스 이론이 입각하여, 릴레이션 스키마로 변환하는 과정을 말합니다.

[예시]

E-R 다이어그램

릴레이션 스키마

[학생 테이블]

 학번

이름 

학년 

 

 

[과목 테이블]

 학번

과목코드

과목명

반응형

1. E-R 모델이란?

개체 관계 모델(Entity-Relationship Model, ERM)은 P.Chen박사에 의해 최초로 제안된 모델로, 데이터베이스에 사용되는 개체, 속성, 관계를 약속된 기호로 표현하여 도식화한 모델입니다. E-R모델을 통해 설계된 산출물을 E-R 다이어그램이라 부릅니다.

 

2. E-R 모델의 기호

 기호

 의미

개체(Entity)

속성(Attribute)

관계(Relationship)

 키 속성

 

3. 다양한 관계 표현법

 기호

의미 

 1개

 

 0개

 

 다수

[예시]

 

→ 하나의 A는 다수의 B와 연관되어 있다

 

→ 다수의 A는 다수의 B와 연관되어 있다

 

→ 하나의 A는 하나 또는 0개의 B와 연관되어 있다

 

→ 하나의 A는 하나의 B와 연관되어 있다

 

 

이런 관계표현은 기호를 사용하는 경우도 있지만, 숫자를 통해 나타내어지기도 합니다.

[예시]

나의 A는 다수의 B와 연관되어 있다.

 

→ 학번, 이름, 학년이란 속성을 가진 학생 개체는 다수의 과목 개체와 수강이란 관계를 가지고있다. 과목 개체는 과목코드와 과목명이란 속성으로 구성되어있다. 여기서 학번 속성은 학생의 기본키이며, 과목코드 속성은 과목의 기본키이다.

 

반응형

데이터베이스 설계

데이터베이스 설계는 사용자 요구를 토대로 현실 세계의 대상을 구현가능한 컴퓨터 데이터베이스의 구조로 개발하는 작업입니다. 데이터베에스 설계는 스키마를 정의하고 이를 구현하기 위한 전반적인 과정을 거칩니다.

이 과정들을 세분화하면, 요구조건 분석설계(개념적 설계→논리적 설계→물리적 설계) → 구현운영 및 유지보수 입니다.


1) 요구조건 분석: 업무 프로세스 및 사용자가 필요한 정보가 무엇인지, 해결해야할 문제가 무엇인지를 분석하는 과정입니다. 이렇게 분석된 자료를 토대로 요구조건 명세서를 작성합니다.

  [예시]: ㅁㅁ대학교의 학생들을 데이터베이스로 구현한다. 학생에게는 고유의 학번이 부여되며, 그 외에 이름, 나이, 학년, 전공이란 속성을 가진다.


 

2) 개념적 설계: 요구조건을 분석한 결과를 기반으로, 데이터베이스에 저장해둘 데이터 요소(개체 및 속성)가 무엇인지 정하고 그 요소들 간의 관계를 파악하여 개념적으로 표현합니다.  개체-관계 모델(Entity-Relation Model, E-R모델, ERM)을 통하여 개체 타입과 이들간의 관계타입을 이용하여 현실 세계를 개념적으로 표현할 수 있습니다. 이렇게 E-R모델을 이용해 표현한 산출물을 개체-관계 다이어그램(Entity-Relationship Diagram, E-R다이어그램, ERD)이라고 합니다.

E-R모델(Entity-Relation Model): 데이터베에스에 사용되는 개체, 속성, 관계를 약속된 기호로 표현하여 데이터베이스의 전반적인 구조를 이해하기 쉽도록 표현한 모델.


3) 논리적 설계: 개념적 설계에서 만들어진 구조를 기반으로 DBMS가 처리할 수 있는 데이터베이스의 논리적 구조를 설계하는 단계입니다. 여기서 스키마를 정의하게 됩니다. 목표 DBMS에 따라 관계형, 계층형, 망형 모델로 설계될 수 있습니다. 이 단계에서 정규화 또한 진행됩니다.

 

※스키마(Schema): 데이터베이스의 전체적인 구조와 제약조건에 대한 명세를 기술·정의한 것입니다. 스키마의 계층으로는 개념 스키마, 외부 스키마, 내부 스키마가 있습니다.

 

(스키마의 3계층 사진. 출처: https://en.wikipedia.org/wiki/Three-schema_approach )

 

  * 외부 스키마(External Schema):  전체 데이터 중에서 사용자가 바라보는 일부분에서의 논리적 구조를 말합니다. 이는 사용자에 따라 다르며, 여러개가 존재합니다. 서브 스키마라고도 합니다.

  * 개념 스키마(Conceptual Schema): 논리적 관점(사용자 관점)에서 본 전체적인 데이터의 논리적 구조입니다. 개념 스키마를 줄여서 그냥 스키마라 부르기도 하며, 전체적인 뷰라고도 부릅니다. 데이터베이스 전체를 기술한 것이기에, 한 데이터베이스 시스템에선 유일합니다.

  * 내부 스키마(Internal Schema): 물리적인 저장장치 관점에서 본 데이터베이스의 구조입니다.


4) 물리적 설계: 논리적으로 설계된 데이터베이스 구조를 토대로 하드웨어나 운영체제의 특성을 고려하여 그에 알맞은 인덱스의 구조와 내부 저장 구조 및 접근 경로를 설계하는 단계입니다. 그 외에 저장레코드의 양식을 설계하고, 물리적인 데이터의 타입이나 사이즈 등을 정의합니다. 여기서 성능을 향상시키기 위한 역정규화 작업도 실시합니다.


5) 구현: 설계 과정에서 얻어진 것을 토대로 실제 데이터베이스를 만드는 과정입니다. 


6) 운영 및 유지보수: 구현된 데이터베이스를 실제로 운영해보면서 문제점과 개선점을 파악합니다. 그렇게 파악된 문제점을 토대로 데이터베이스의 튜닝유지보수를 합니다.

 * 데이터베이스 튜닝(Database Tuning):  데이터베이스가 일정한 성능을 유지할 수 있도록 데이터베이스의 여러 요소들을 조율하여 비효율적인 요소를 제거하고 성능을 개선하는 작업입니다.

데이터베이스 유지보수:  데이터베이스를 운영하면서 사용자 및 비지니스 환경 변화, 업무 절차 변화가 일어날 수 있습니다. 이런 환경의 변화에 따라 데이터베이스를 지속적으로 변경하는데, 이런 일련의 작업을 유지보수라고 합니다.

반응형

1. 데이터베이스 관리 시스템(DBMS, DataBase Management System)

1) DBMS의 정의

데이터베이스 관리 시스템은 파일 시스템의 문제점을 해결하기 위해 등장한 시스템으로, 데이터베이스의 내용을 정의, 조작, 제어할 수 있도록 함으로서 다수의 사용자와 응용프로그램들이 데이터베이스의 내용을 공유할 수 있도록 운영 및 관리를 하는 소프트웨어 시스템입니다. DBMS는 사용자와 데이터베이스의 중계 역할을 합니다.

 

2) DBMS의 기능

정의기능(Definition Facility): 저장할 데이터의 형태 및 구조와 데이터베이스의 구조에 대해 정의합니다. 이렇게 정의된 것은 시스템 카탈로그의 형태로 저장됩니다.

조작기능(Manipulation Facility): 데이터베이스를 이용할 수 있도록 사용자의 요구에 따라 데이터의 검색 및 삽입, 삭제, 갱신 작업을 가능하게 해줍니다.

- 제어기능(Control Facility): 데이터의 무결성 유지, 보안, 병행 수행제어 기능을 제공하여 데이터베이스의 안정성을 유지합니다.

 

3) DBMS의 장점

자료와의 관계성을 정의하기 때문에 자료 통합성이 증가됨

- 데이터의 중복성과 종속성 최소화 시킵니다.

- 다수 사용자 간의 데이터 공유가 가능합니다.

- 데이터의 무결성과 일관성을 유지합니다.

- 권한과 보안 기능을 지원하여 데이터의 보안성이 높습니다.

 

4) DBMS의 단점

- 파일시스템에 비해 경제적으로 비용이 많이 들어갑니다.

- 한 부분에 장애가 생기면, 전체 시스템에 영향을 주는 취약성이 있음

- 자료 처리가 파일 시스템에 비해 복잡하니다.

- 시스템의 성능에 따라 DBMS가 좌우됩니다.

 

5) 종류

IMS, CODASYL DB, DB2, ORACLE, INFORMIX, SYBASE, INGRES, MS-SQL, Objectivity, O2, Versanat, Ontos, Gemstone, Unisql, Object Store, Starburst, Postgres, Tibero, MySQL

 

 

2. 데이터베이스 이용자

데이터베이스는 여러 유형의 사용자들이 이용합니다.

- 일반 사용자(End User): 데이터를 검색하고, 필요한 자료들을 데이터베이스에 삽입, 갱신, 삭제하는 목적으로 이용하는 사람입니다.

- 응용 프로그래머(Application Programmer): 데이터베이스를 활용하며, 사용자 인터페이스를 제공하는 일을 합니다.

- 데이터베이스 관리자(DataBase Administrator): 데이터베이스 전체에 대한 설계와 조작에 관한 책임을 맡습니다. 또한 보안, 권한 부여, 유효성 검사 등을 수행하며, 무결성 유지를 위한 관리를 합니다.

- 데이터 관리자(Data Administrator): 데이터 관리를 총괄합니다. 조직 내에서 데이터에 대한 정의, 체계화, 감독 및 보안 업무를 담당합니다.

- 데이터 설계자(Data Architect): 조직의 업무 수행에 필요한 데이터의 구조를 정의하는 사람입니다.

반응형

1. 데이터베이스 언어

데이터베이스 언어의 종류로는 DDL, DML, DCL이 있습니다.

- 데이터 정의어(Data Definition Language, DDL): 데이터베이스의 구조, 데이터의 형태, 접근방식을 정의, 수정, 삭제하는데 쓰이는 언어입니다.

[예시]

CREATE: 데이터를 저장할 테이블을 생성하는 명령어

ALTER: 데이터를 저정한 테이블의 구조를 변경하는 명령어

DROP: 데이터가 저정된 테이블을 삭제하는 명령어

 

- 데이터 조작어(Data Manipulation Language, DML): 데이터베이스 내에 자료들을 검색하거나 삽입, 수정, 삭제하는 언어입니다.

[예시]

SELECT: 원하는 조건에 따른 데이터를 검색하는 명령어

INSERT: 데이터베이스에 데이터를 저장하는 명령어

UPDATE: 저장된 데이터를 갱신하는 명령어

DELETE: 저장된 데이터를 삭제하는 명령어

 

- 데이터 제어어(Data Control Language): 데이터의 정확성과 안전성을 유지하기 위해, 무결성 유지, 회복, 병행 제어, 보안, 권한 기능을 수행하는 언어입니다.

[예시]

COMMIT: 한 트랜잭션에서 데이터 조작이 정상적으로 완료되었으면, 그 결과를 데이터베이스에 반영하는 명령어

ROLLBACK: 트랜잭션 내에서 데이터를 수정하는 도중 이상이 생겼을때, 변경하기 이전으로 돌아가는 명령어

GRANT: 사용자에게 권한을 부여하는 명렁어

REVOKE: 부여된 권한을 취소하는 명령어

 

 

2. 시스템 카탈로그(System Catalog)

1) 시스템 카탈로그 정의

시스템 카탈로그는 데이터 사전(Data Dictionary)이라고도 부르며, 데이터베이스에 저장된 모든 데이터 요소들(테이블, 뷰, 제약조건, 사용자 등)에 대한 정보를 저장한 것입니다.

시스템 카탈로그에 저장된 데이터들메타 데이터(Meta Data)라고 부릅니다.

 

2) 시스템 카탈로그 특징

- 시스템 테이블의 형태로 구성되어있습니다.

- 사용자가 SQL문을 실행시켜 테이블,뷰,인덱스,제약조건 등에 변화를 주면 DBMS에 의해 시스템 카탈로그 내용 갱신이 자동적으로 이루어집니다.

- 일반사용자는 시스템 카탈로그의 내용을 검색할 수 있지만, 시스템 카탈로그의 내용들을 변경하는 것은 불가능합니다.

반응형

 데이터베이스는 개체, 속성, 관계라는 구성요소가 있습니다.


1. 개체(Entity)

 개체란 데이터로 표현하고자 하는 현실 세계의 대상체입니다. 이는 현실 세계에서 사람이 생각하는 개념 및 정보의 단위가 되며, 서로 구별이 가능합니다. 이러한 개체는 하나 이상의 속성으로 구성됩니다. 개체의 종류로는 독립 개체, 종속 개체가 있습니다.

[예시] 한 회사 내에서 일을 하고있는 직원 한명한명, 서점에 있는 책 한권학권 등등

- 독립 개체(Independant Entity):  다른 개체에 종속되지 않고, 스스로 존재할 수 있는 개체입니다.

- 종속 개체(Dependent Entity): 부모 개체로 불리는 다른 개체 집합의 존재에 존재성이 의존되는 개체입니다. 자식 개체라고도 부릅니다.

[예시] 각각의 학생에 대한 정보를 기록해놓은 데이터베이스가 있을때, '가족 사항'이라는 개체는 '학생'개체에 종속된 종속개체입니다.

 

※ 개체 집합: 같은 형태를 가진 개체들을 모은 집합

[예시]

- 학생, 교수, 교직원 개체는 '사람'이란 집합이 됩니다.

- 전자공학과, 기계공학과, 국문학과, 영문학과, 철학과 개체는 '학과'라는 집합이 될 수 있습니다.

 


2. 속성(Attribute)

 

 속성은 저장할 필요가 있는 개체에 관한 정보로, 개체의 특성 및 상태를 기술합니다. 이러한 속성은 데이터베이스를 구축하는 가장 작은 논리적 단위이며, 속성 하나만으로는 대상을 구분하기 어렵습니다. 속성의 종류로는 단순 속성, 복합 속성, 파생 속성이 있습니다.

[예시] 서점의 책이 개체라면, 속성은 책의 서명, 저자, 분류, 가격, 출판사가 될 수 있습니다.

 - 단순 속성: 값을 더이상 나눌 수 없는 속성입니다.

- 복합 속성: 2개 이상의 의미있는 값으로 분해할 수 있는 속성입니다.

[예시] 주민등록번호 전체를 저장하는 속성의 경우, '주민등록번호 앞자리'와 '주민등록번호 뒷자리'로 나뉠 수 있습니다.

 


3. 관계(Relation)

 2개 이상의 개체간의 연관성입니다. 주로 동사의 형태로 표현됩니다. 관계는 사상수에 따라 1:1(일 대 일), 1:n(일 대 다), N:M(다 대 다)로 구분할 수 있습니다. 또한 한 관계에 연관된 개체집합의 차수에 따라 일진관계성, 이진관계성, 삼진관계성등으로 구분되어집니다.

[예시] 사장이란 개체와 사원이란 개체는 '고용'이란 관계에 있습니다. 학생과 과목사이에는 '수강'이란 관계가 있습니다

 

- 1:1 관계: 개체로 구분되는 사람과 그 사람의 주민등록번호의 관계.

 




- 1:n 관계: 한 음식점과 음식점 메뉴의 관계



- n:m 관계: 여러 전공들과 여러 학생들의 관계

 

- 일진 관계성(Unary Relationship): 하나의 개체 집합에서만 관계가 있습니다. 이를 순환관계성(Recursive Relationship)이라고도 합니다.

[예시] '사람'이란 개체집합 사이에서 '결혼'이란 관계가 있습니다.

 

이진 관계성(Binary Relationship): 2개의 개체집합 사이의 관계를 말합니다.

[예시] '학생'이란 개체집합과 '과목'이란 개체집합에서 '수강' 관계가 있습니다.

 

삼진 관계성(Binary Relationship): 3개 이상의 개체집합에 관한 관계입니다.

[예시] '학생', '과목', '교수'라는 3개의 개체집합 간의 관계

반응형

1. 데이터베이스 도입 배경

파일시스템을 통하여 데이터들을 저장하고 처리할 수 있었지만, 파일 시스템에서는 독립된 파일 단위로 데이터들을 저장하였기 때문에, 데이터의 중복성(Data Redundancy)데이터의 종속성(Data Dependency)이 발생한다는 문제가 있었습니다. 결국 이것은 데이터의 무결성(Integrity)를 위배하는 결과를 가져오게 됩니다. 그래서 이러한 파일시스템의 문제점을 해결하기 위해 도입된 시스템이 데이터베이스 시스템입니다.


※데이터 중복성(Data Redundancy): 한 시스템이 같은 내용의 데이터가 여러 파일에 중복된 채 저장되어 관리되는것. 데이터 중복성은 한 데이터가 수정되면 중복된 데이터들을 모두 수정해야하는 불편함을 주며, 만일 일부만 수정되었을 경우 불일치성을 야기합니다. 또 저장공간의 낭비도 야기하게 됩니다.

[예시] 어느 회사에서 '영업부'에 '김영희'라는 이름의 사원이 있다고 가정합니다. 이 사원의 이름, 부서정보를 A파일과 B파일에 저장하였습니다.

여기서 김영희라는 사원의 부서가 영업부에서 '마케팅부'로 변경되었다면, A와 B파일의 데이터 모두를 갱신해야합니다.

만일 A파일만 갱신되었고 B파일을 갱신하지 않으면 A에서는 김영희의 부서가 마케팅부이지만 B파일에는 여전히 영업부로 남아있는 불일치가 생깁니다.

※데이터 종속성(Data Dependency): 데이터와 응용프로그램이 의존관계가 있는 것. 만일 데이터의 구성이나 접근방법이 변경된다면 관련 응용프로그램의 구조도 변경되어야 한다는 불편함이 있습니다. 

[예시] .hwp파일데이터는 한글 프로그램에서만 읽을 수 있고, .pptx 파일데이터는 프레젠테이션 관련 응용프로그램에서만 실행 가능합니다. 


2. 데이터베이스 정의

데이터베이스는 여러 사용자나 응용 프로그램이 공용으로 사용되는것을  통합 저장되어 관리하는 운영상의 데이터 집합을 말합니다.

- 통합된 데이터(Integrated Data): 자료의 중복을 배제 또는 최소화 한 데이터의 집합

- 저장된 데이터(Stored Data): 컴퓨터가 접근할 수 있는 저장매체에 저장되어 사용자나 응용 시스템이 언제든지 이용할 수 있는 데이터 집합

- 운영 데이터(Operational Data): 조직의 운영에 없어서 안되는 필수적인 데이터들의 집합

- 공용 데이터(Shared Data): 다수의 사용자 및 응용시스템이 공유하는 데이터들의 집합


3. 데이터베이스의 특징

- 계속적인 변화(Continuous Evolution): 데이터의 삽입, 갱신, 삭제 작업을 통해  항상 최신의 데이터를 유지합니다.

- 실시간 접근(Real Time Accessibility): 질의(Query)에 대해 실시간 처리 및 응답을 하여, 사용자가 원한다면 언제든지 접근할 수 있습니다.

- 동시 공유(Concurrent Sharing): 여러 사용자가 동시에 사용할 수 있습니다.

- 내용에 의한 참조(Content Refence): 데이터의 물리적 주소가 아닌 내용, 즉 데이터의 값에 의한 참조를 할 수 있습니다.

[예시] 사람들의 이름과, 그에 사람의 전화번호가 저장되어있는 데이터베이스가 있습니다.

여기서 '홍길동'이란 사람의 전화번호를 찾을때, 이 데이터가 저장되어있는 물리적인 주소를 가지고 찾는것이 아니라, 질의문에 '홍길동'이라는 값을 넣어 이름을 가지고 검색할 수 있습니다.

- 데이터 중복의 최소화(Redundancy Minimize): 동일 데이터의 중복을 최소화합니다.


반응형

1. 배열

[배열의 생성]

- 대괄호([])로 생성

- 대괄호 사용 후 안에 쉼표로 구분하여 자료를 입력

ex)

<script>

//변수를 선언합니다

var array = [225 , 100, 32 ,58];

</script>

 

[배열의 구성]

- 배열은 인덱스와 요소로 구성되어 있다.

- var fruit = ['사과', '오렌지', '딸기', '망고', '바나나'] 라는 배열이 있을 경우, 0번 인덱스의 요소는 사과, 3번 인덱스의 요소는 망고이다.

 

2. 객체

- 객체는 요소에 인덱스로 접근하는 배열과 달리, 요소에 키를 통해 접근한다

ex)

<script>

var product = {

제품명: '7D 건조 망고',

유형: '당절임'

성분: '망고, 설탕, 메타중아황산나트륨, 치자황색소',

원산지: '필리핀'

};

</script> 

 

[객체의 사용과 객체의 키]

- 객체 뒤에 대괄호를 사용하고 키를 표시하여 요소에 접근한다

ex)

product['제품명'] → '7D 건조 망고'

product['성분'] → '망고, 설탕, 메타중아황산나트륨, 치자황색소'

 

- 객체 뒤에 마침표를 사용한다

ex)

product.제품명 → '7D 건조 망고'

product.성분 → '망고, 설탕, 메타중아황산나트륨, 치자황색소'

 

여기서 공백과 같이 식별자가 아닌 문자가 있는 키 이름은 마침표를 통해 접근이 불가능하며 오로지 대괄호를 통해서만 접근가능 하다.

ex)

object['white space']

 

 

[객체의 속성]

- 객체 내부에 있는 값 (요소는 배열 내부에 있는 값이다)

ex)

var object = {

number: 273,

string: 'RintIanTta'

boolean: true

}

여기서 object객체의 속성들은 number, string ,boolean이 있다.

 

 

[메소드]

- 객체의 속성 중 함수 자료형인 속성을 말한다

ex)

<script>

var person = {

name: '윤인성',

eat: function (food) { }

}

person.eat();

</script>

여기서 eat속성은 함수 자료형이므로 eat()매소드라 부른다.

 

 

[객체와 반복문]

- 객체는 단순 for 반복문으로 객체의 속성을 살펴보는 것이 불가능하다. 그래서 대신 for in을 사용하여 객체의 속성들을 모두 살펴볼 수 있다.

ex)

<script>

var product = {

제품명: '7D 건조 망고',

유형: '당절임'

성분: '망고, 설탕, 메타중아황산나트륨, 치자황색소',

원산지: '필리핀'

};

var output='';

for ( var key in product) {

output += '*' + key + ': ' + product[key] + '\n';

}

alert(output);

</script>

 

출력은

*제품명: '7D 건조 망고',

*유형: '당절임'

*성분: '망고, 설탕, 메타중아황산나트륨, 치자황색소',

*원산지: '필리핀'

로 나온다

 

 

[객체의 속성 추가와 제거]

- 동적으로 속성을 추가하거나 제거할 수 있다

ex)

<script>

var student = {};

student.이름 = '윤인성';

student.취미 = '악기';

student.특기 = '프로그래밍';

student.장래희망 = '생명공학자';

</script>

 

-동적으로 메소드를 추가하거나 제거할 수 있다

ex)

<script>

var student = {};

student.이름 = '윤인성';

student.취미 = '악기';

student.특기 = '프로그래밍';

student.장래희망 = '생명공학자';

 

student.toString = function () {

var output = '';

for (var key in this) {

if ( key != 'toString' ) {

output += key + '\t' + this[key] + '\n';

}

}

return output;

};

 

//출력

alert(student.toString() );

</script>

 

- 속성의 제거는 delete 키워드를 사용하여 할 수 있다. 이 키워드 뒤에 삭제하고자 하는 객체의 속성을 입력하여 지울 수 있다.

반응형

1. 타이머 함수

- 특정한 시간에 특정한 함수를 실행가능하게 한다.

- 타이머 함수 종류 

메서드 이름 

설명 

 setTimeout(function, milisecond)

 일정 시간 후 함수를 한번 실행

 setInterval(function, milisecond)

 일정 시간마다 함수를 반복해서 실행

 clearTimeout(id)

 일정 시간 후 함수를 한 번 실행하는 것을 중단시킴

 clearInterval(id)

 일상 시간마다 함수를 반복하는 것을 중단시킴

 

2. 인코딩과 디코딩 함수

- 인코딩: 문자를 컴퓨터에 저장 혹은 통신에 사용할 목적으로 부호화 하는 방법

- 디코딩: 인코딩을 원래대로 되돌려 놓는 것

함수 이름

설명 

 escape()

 적절한 정도로 인코딩합니다 

 unescape()

 적절한 정도로 디코딩합니다

 encodeURI(url)

 최소한의 문자만 인코딩합니다

 decodeURI(encodedURI)

 최소한의 문자만 디코딩합니다

 encodeURIComponent(urlComponent)

 대부분의 문자를 모두 인코딩합니다

 decodeURIComponent(encodedURI)

 대부분의 문자를 모두 디코딩합니다

 

[escape( )]

- 영문 알파벳, 숫자, 일부 특수문자(@, *, -, _, +, ., /)를 제외하고 모두 인코딩

- 1byte문자는 %XX의 형태로, 2byte문자는 %uXXXX형태로 변환

 

[encodeURI( )]

- ecape()함수에서 인터넷 주소에 사용되는 일부 특수문자( :, ;, /, =, ?, &)는 변환하지 않음

 

[encodeURIComponent( )]

- 알파벳과 숫자를 제외한 모든 문자를 인코딩

- UTF-8인코딩과 같음

 

인코딩은 초기에 escape()함수만 있었으나, 시간이 지남에 따라 진화했다. 현재는 encodeURIComponent()함수를 가장 많이 사용하고 있다.

 

 

3. 코드 실행 함수

 - 자바스크립트는 문자열을 코드로 실행할 수 있는 특별한 함수를 제공한다.

함수 이름 

 설명

 eval(string)

 string을 자바스크립트 코드로 실행한다 

 

 

4. 숫자 확인 함수

- 변수의 숫자가 Infinity와 NaN(Not a number)와 같은 특별한 숫자인지 확인하는 함수

- 대부분의 프로그래밍 언어는 0으로 숫자를 나누면 오류가 발생하며 프로그램이 멈추지만, 자바스크립트는 0으로 숫자를 나누면 infinity값이 들어간다 

함수 이름 

설명 

 isFinite()

 number가 무한한 값인지 확인한다

 isNaN()

 number가 NaN(숫자가 아닌 값)인지 확인한다

 

 

5. 숫자 변환 함수

 함수 이름

설명 

 Number()

 객체를 숫자로 바꾸어준다

 parseInt(string)

 string을 정수로 바꾸어준다

 parseFloat(string)

 string을 유리수로 바꾸어준다

- 여기서 Number의 경우 숫자로 바꿀 수 없으면 NaN으로 변환하다는 단점이 있다

ex)

<string>

var won = '1000원';

var dollar = '1.5$';

alert(Number(won) + ' : ' + Number(dollar));

</script>

이 경우 alert창에서 "NaN, NaN"이 출력된다.

반면 parseInt를 사용했을 경우 "원"과 "$"를 제외하고 숫자만 고려하여 "1000 : 1"이,

parseFloat를 사용했을 경우 "1000 : 1.5"가 출력된다.

 

 

6. 문자열 변환 함수

함수 이름 

설명 

 String()

객체를 문자로 변환하여 출력

 

 

7. 가변인자 함수

- 매개변수의 개수가 변할 수 있는 함수

- 대표적으로 Array()함수가 있다

- Array함수의 형태

함수 형태

설명

 Array() 

 빈 배열을 만든다

 Array(number)

 매개변수 만큼의 크기를 가지는 배열을 만든다

 Array(any, ..., any) 

 매개변수를 배열로 만든다

 

 

'Java Script' 카테고리의 다른 글

JS 테스트  (0) 2022.10.10
자바스크립트 함수  (0) 2016.05.08
자바스크립트의 자료형  (0) 2016.05.08
자바스크립트 키워드와 식별자  (0) 2016.05.08
자바 스크립트(Java Script)에 대해  (0) 2016.05.07

+ Recent posts