본문 바로가기
728x90

전체 글259

[백준] 자바 문제 풀이 14503 : 골드5 import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] s = br.readLine().split(" "); int n = Integer.parseInt(s[0]); int m = Integer.parseInt(s[1]); s = br.readLine().split(" "); int r = Integ.. 2023. 9. 19.
MongoDB란 - NoSQL, MongoDB NoSQL MongoDB는 NoSQL의 한 종류로서, MongoDB에 대해서 알아보기 전에 NoSQL이 무엇인지에 대해서 먼저 알아야 한다. NoSQL = Not only SQL NoSQL은 SQL을 쓰지 않는다의 의미를 가지는 No가 아닌 Not only를 줄인 No를 쓰기 때문에 SQL뿐만 아니라는 의미로 관계형 데이터베이스인 RDB에서 하지 못했거나 어려운 것들을 해결하기 위해 등장하였다. RDB와 NoSQL의 특징 비교를 통해서 간략하게 알아보겠다. RDB - 관계형 데이터베이스 RDB는 많은 사람이 알고 있듯이 효율적인 데이터 관리와 무결성을 위해 정규화를 사용한다. 이를 통해 여러 장단점을 가지게 된다. 데이터 중복을 방지 복잡하고 다양한 질의가 가능 여러 테이블을 조인 해야 함 : 조회가 느.. 2023. 9. 5.
SQLD - 데이터 모델과 성능3(분산데이터베이스) 분산 데이터베이스 데이터베이스 시스템 구축 시에 한 대의 물리적 시스템에 데이터베이스 관리 시스템(DBMS)을 설치하고 여러 명의 사용자가 데이터베이스 관리 시스템에 접속하여 데이터베이스를 사용하는 구조를 중앙 집중형 데이터베이스라고 한다. 이와는 달리, 물리적으로 떨어진 데이터베이스에 네트워크로 연결하여 단일 데이터베이스 이미지를 보여주고 분산된 작업 처리를 수행하는 데이터베이스를 분산 데이터베이스라고 한다. 분산 데이터베이스를 사용하는 고객은 시스템이 네트워크로 분산되어 있는지의 여부를 인식하지 못하면서, 자신만의 데이터베이스를 사용하는 것처럼 사용할 수 있다. 이와 같이 데이터베이스는 투명성을 제공하는 것이 매우 중요하다. 투명성 종류 투명성의 종류로는 분할, 위치, 지역사상, 중복, 장애 및 병행.. 2023. 8. 22.
SQLD - 데이터 모델과 성능2(반정규화) 반정규화(De-Normalization) 반정규화란, 데이터베이스의 성능 향상을 위하여, 데이터 중복을 허용하고 조인을 줄이는 데이터베이스 성능 향상 방법이다. 정규화와는 반대되는 개념이기 때문에, 반정규화를 할 시 데이터의 무결성을 해칠 수 있다는 단점이 있지만 SELECT 등의 성능을 향상 시킬 수 있다는 장점이 있다. 반정규화를 수행하는 경우 정규화에 충실하면 종속성, 활용성은 향상되지만 수행 속도가 느려지는 경우 다량의 범위를 자주 처리해야 하는 경우 특정 범위의 데이터만 자주 처리되는 경우 요약/집계 정보가 자주 요구되는 경우 반정규화 절차 반정규화는 데이터의 무결성을 해치기 때문에 위와 같이 반정규화 수행이 필요한 상황이 왔다고 해서 무조건적으로 수행하지 않는다. 반정규화를 진행하기 전, 사용.. 2023. 8. 22.
SQLD - 데이터 모델과 성능1(정규화) 정규화란 정규화는 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법이며 데이터를 분해하는 과정이다. 간단히 말해, 정규화는 데이터 중복을 제거하고 데이터 모델의 독립성을 확보하기 위한 방법인 것이다. 중복이 없는 독립성을 확보한 정규화가 진행된 데이터베이스는 비즈니스에 변화가 발생하여도 데이터 모델의 변경을 최소화 할 수 있다. 정규화는 제 1 정규화에서 제 5정규화까지 있지만, 실질적으로는 제 3정규화까지 수행한다. 이상현상(anomaly) 정규화를 진행하지 않은 데이터 베이스의 테이블에는 여러 이상현상을 가지고 있어 데이터의 중복, 일관성 등을 해친다. 이러한 이상현상을 없애기 위해 정규화를 진행한다. https://codingralro.tistory.com/entry/DB.. 2023. 8. 21.
DBMS - 프로시저(Procedure) 프로시저 - PL/SQL 프로시저는 함수라는 의미로 programming 언어에서 흔히 쓰이는 function과 기능이 유사하다. 프로시저 문법을 쓰기 위해서는 PL/SQL문에 대해서 알아야 한다. PL/SQL : Procedural Language Extension/Structured Query Language DML의 단순 데이터 활용 한계로 SQL언어에 절차적 언어의 요소를 더하여 데이터 처리를 향상시킨 기능으로 일반 프로그래밍 언어에서 제공하는 많은 기능들이 탑재되어 있다. DB에 직접 탑재되어 컴파일되고 실행되어 성능면에서도 우수하다. 사용법 프로시저의 사용법은 다음과 같다. CREATE OR REPLACE PROCEDURE 프로시저명 ( [매개변수1] [매개변수1 타입] ... ) IS -- .. 2023. 8. 20.
DBMS - VIEW VIEW란 DBMS에서 VIEW는 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상테이블이다. 실무에서 많이 사용하는 문법 중 하나이다. 가상테이블이기 때문에 저장장치 내에서는 물리적으로 존재하지 않지만 사용자에게는 있는 것처럼 간주된다. 뷰를 사용하는 이유로는 독립성, 편리성, 보안성이 있다. 독립성 : 데이터가 다른 곳에서 변경되지 않도록 논리적 독립성을 제공 편리성 : 가상 테이블인 뷰를 만들 때, 원하는 데이터에 대한 정보를 추출, 생성하여 뷰를 형성하였기 때문에 뷰에 쿼리문을 짧게 사용이 가능 보안성 : 뷰를 사용할 때는 짧은 쿼리문을 사용 -> 기존의 긴 쿼리문(뷰를 생성할 때 사용한)은 알기 어렵다. VIEW 특징 뷰는 기본테이블로부터.. 2023. 8. 17.
DBMS - DCL DCL이란 DCL = DATA CONTROL LANGUAGE = 데이터 제어어 DCL은 데이터 제어어로서 데이터베이스에 접근하거나 객체에 권한을 주는 등의 역할을 하는 언어이다. 예를 들어 신입사원이 들어와 데이터베이스에 접근해서 수정하는 권한을 부여하고 싶을 때, 또는 잘못 부여한 권한을 회수할 때 사용한다. GRANT : GRANT [부여할 권한] TO [권할을 부여 받을 사용자]; REVOKE : REVOKE [회수할 권한] FROM [권한을 회수당할 사용자]; DCL을 사용할 때 주의할 점은, 누가 권한을 줄 수 있느냐이다. 만약 새로운 사용자가 USER로 등록되었다면, SYS 또는 SYSTEM 사용자가 데이터베이스에 대한 권한을 줄 수 있다. 하지만 다른 계정에 있는 TABLE을 복사해오고 싶을.. 2023. 8. 17.
DBMS - JOIN JOIN JOIN은 DBMS에서 많이 쓰이는 문법 중 하나로, 이름 그대로 여러 테이블을 하나로 합치는 문법이다. 여러 테이블에 흩어져 있는 정보 중 사용자가 필요한 정보만 가져와서 가상의 테이블처럼 만들고 결과를 보여준다. 조회 테이블이 너무 많이 쪼개져 있으면 각각의 테이블에 같은 작업을 반복해야 되기 때문에 작업 속도가 느려지는 데 이 대 조인을 이용하여 필요한 테이블을 합쳐서 작업을 하나다면 훨씬 효율적으로 작업을 수행할 수 있다. INNER JOIN - 내부 조인 조건이 일치하는 값이 두 테이블에 모두 존재할 때 내부 조인을 사용하여 조회를 할 수 있다. 조건이 일치하는 값이 존재하기 위해서는 두 테이블이 PK, FK로 연결되어야 함을 의미한다. SELECT ... FROM 테이블1 JOIN 테.. 2023. 8. 17.
SQLD-데이터모델링의 이해5(속성) 속성(Attribute) 속성이란, 비즈니스 프로세스에서 도출한 엔터티가 비즈니스 프로세스 수행을 하기 필요한 정보를 뜻한다. 속성은 더 이상 분리되지 않는 단위로, 여러 데이터를 저장할 수 있다. 예를 들어, 주문 정보 시스템에서 고객 정보에 대한 엔터티를 도출하였다고 했을 때, 고객ID, 이름, 나이, 주소, 전화번호 등이 속성에 해당하는 것이다. 속성의 특징 속성은 비즈니스 프로세스에서 관리되는 정보이다. 속성은 하나의 값만 가진다. 주식별자에게 함수적으로 종속된다. 즉, 기본키가 변경되면 속성의 값도 변경된다. 속성의 종류 - 분해 여부에 따른 속성의 종류 단일 속성 : 하나의 의미로 구성된 것으로 회원ID, 이름 등을 예로 들 수 있다. 복합 속성 : 여러 개의 의미가 있는 것으로 대표적으로 주.. 2023. 8. 16.
SQLD - 데이터 모델링의 이해4(엔터티) 엔터티(Entity) 엔터티란 업무에서 관리해야 하는 데이터 집합을 의미하며, 저장되고 관리되어야 하는 데이터이다. 엔터티는 개념, 사건, 장소 등으로 표현할 수 있는 명사이다. 엔터티 도출 개발자들은 사용자들의 요구사항에 맞춰 비즈니스 프로세스에서 관리되어야 하는 정보를 추출하여야 한다. 그렇기 때문에 에 사용자의 업무에 대한 이해도가 필요한 것이다. 예를 들어, 계좌를 개설하는 비즈니스 프로세스가 존재한다고 가정했을 때 다음과 같이 엔터티를 도출할 수 있다. 회원가입 -> 회원 엔터티 -> 회원ID, 패스워드, 이름, 주소, 전화번호 등이 필요 회원으로 가입하기 위해서는 반드시 하나의 계좌를 개설 고객은 계좌를 여러 개 개설할 수 있다. 계좌를 개설할 때는 계좌번호, 계좌명, 예수금, 계좌개설지점, .. 2023. 8. 16.
SQLD - 데이터 모델링의 이해3(3층 Schema) 3층 스키마(Schema) 3층 스키마란, 사용자, 설계자, 개발자가 데이터베이스를 보는 관점에 따라 데이터베이스를 기술하고 이들 간의 관계를 정의한 ANSI 표준이다. 데이터베이스의 독링성을 확보하기 위한 방법으로 이를 통해 데이터 복잡도 감소, 데이터 중복 제거, 사용자 요구사항 변경에 따른 대응력 향상, 관리 및 유지보수 비용 절감등의 장점을 가질 수 있다. 3단계 계층으로 분리하여 독립성을 확보하는 방법으로 각 계층을 뷰(View)라고 하고 가상 테이블이라고 생각하면 된다. 3층 스키마의 독립성 3층 스키마의 독립성은 다음의 두가지 독립성을 가진다. 논리적 독립성 : 개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것 물리적 독립성 : 내부 스키마가 변경되더라도 개념 스키마가 영향을 받.. 2023. 8. 16.
728x90
반응형