본문 바로가기
웹 프로그래밍 기초/자바기반의 웹&앱 응용SW 개발자

자바기반의 웹&앱 응용 SW개발자 양성과정 25일차 -44

by oncerun 2020. 4. 6.
반응형

1. 데이터베이스란?

데이터베이스는 여러 사용자들에 의해 공유되어 사용될 목적으로 통합되어 관리되는 데이터들의 그룹입니다. 중복되는 자료를 없애고 자료들을 한 곳으로 모아서 자료 검색과 실시간의 업무가 가능해집니다. 즉

몇 개의 자료 파일을 조직적으로 통합하여 자료 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체라고 할 수 있습니다.

그러한 정보들을 생성하고 관리가 필요해 만들어진 소프트웨어가 DBMS이며,

DBMS는 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 , 데이터베이스를 관리해주는 역할입니다.

DBMS가 나오기 이전에는 데이터베이스를 어떻게 관리했을까요 ?

보통 각 건물마다 네트워크가 따로 존재했었고, 각각 메인프레임(서버)이 있는 형태였습니다.

각각의 엔티티로써 파일을 나누어서 각 건물마다 관리를 했었습니다.

어떠한 문제점이 있었을까요?

 1. 각 파일들은 실시간으로 공유가 되지 않기 때문에 실시간 업무가 불가능했었습니다.

동기화를 필요할 때마다 할 수는 없으니까요.

 2. 데이터를 모아놓은 파일의 크기가 커졌을 때 유지하기 위한 비용이 많이 들어갔습니다.

한 곳에서 관리하는 것이 아닌 여러 곳에서 관리했기 때문입니다.

 3. 또한 결함이 생겼을 때 처리와 수정에서도 복잡했습니다.

 

이것을 해결하기 위해 단점을 보안한 뒤 DBMS가 나왔습니다.

 

모든 데이터들을 전처럼 분리하지 않고 한 곳으로 전부 모았습니다. 집중화를 시킨 것이죠

집중화를 함에 따라 실시간 업무가 가능해지고 유지비용도 감소했습니다. 결함도 줄었고요.

하지만 단점 또한 존재합니다. 동시성이란 문제도 있었고, 보안에 취약했습니다. 전 방식보단 더 많은 장점을 가지고 있습니다.

 

사용자는 직접적으로 데이터베이스에 접근하는 방식도 있지만 그렇게 사용하지 않습니다.

너무 복잡하고 어렵기 때문이죠. 그 대신 우리는 SQL을 사용합니다

 

2. SQL(Structured Query Language)

관계형 데이터베이스 관리시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어입니다.

관계형 말고도 여러 가지 참조 형식이 있습니다.

Hierarchical DBMS -계층형 데이터베이스란 데이터가 트리 형태의 구조로 조직된 것을 말하며,

부모, 자식 형태를 갖는 구조입니다.


Network DBMS - 계층형 데이터의 데이터 중복 문제를 해결했고, 레코드 간의 다양한 관계를 그물처럼 갖는 구조입니다. 하지만 복잡한 구조 때문에 추후 구조를 변경하기엔 어려움이 따릅니다.


Object - Oriented DBMS -객체 지향 데이터 프로그래밍에 사용되는 것으로 정보를 객체의 형태로 표현하는 데이터 베이스 모델입니다. (수익 가능성이 높은 특정 시장 분야입니다.)


Relational DBMS - 관계형 데이터베이스는 키(key)와 값(value)들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 전산정보 데이터베이스입니다. 우리가 자주 주요 사용되는 데이터베이스 모델입니다.

관계형 데이터 베이스에 좀 더 자세히 적어보자면

이 모델은 데이터를 칼럼(column)과 로우(row)를 이루는 하나 이상의 테이블로 정리하며 각 고유키가 각 로우를 식별합니다.

로우는 그 엔티티 종류의 인스턴스를 대표하며 칼럼은 그 인스턴스의 속성이 되는 값들을 대표한다.

https://github.com/WDI-SEA/notes/blob/master/04-databases/sql-intro/readme.md

 테이블을 삽입하고 삭제하고, 사용자를 관리하는 등의 내용은 웹서비스를 만들기 위한 것이지, 데이터 분석을 위한 것은 아닙니다. 따라서 분석을위한 내용과 서비스를 만들기위한 내용을 구분해 배워도 된다고 생각을 해야 할 것 같다.

반응형

댓글