전체 글

DB

[데이터베이스 개론] Chapter8 - 데이터베이스 설계

데이터베이스 설계 단계 조직 구성원들의 다양한 요구에 알맞은 데이터베이스를 구축하기 위해서는 데이터베이스 설계가 중요하다. 관계 데이터 모델을 기반으로 두고 데이터베이스를 설계할 때는 E-R 모델과 릴레이션 변환 규칙을 이용한 설계 방법과 정규화를 이용한 설계 방법을 사용한다. 요구사항 분석 요구사항 분석 단계에서는 데이터베이스에 대한 사용자들의 요구 사항을 수집하고 분석하여, 개발할 데이터베이스의 용도를 명확히 파악하는 것이 목적이다. 요구 사항 분석 단계는 사용자가 요구하는 데이터베이스의 용도가 결정되는 단계이기 때문에 품질 좋은 데이터베이스를 개발하기 위해 가장 중요한 단계이다. 데이터베이스를 사용할 주요 사용자의 범위부터 결정한다. 사용자가 조직에서 수행하는 업무를 분석한다. 수집된 요구 사항을 ..

DB

[데이터베이스 개론] Chapter7 - 데이터베이스 언어 SQL

SQL의 소개 SQL(Structured Query Language)은 관계 데이터를 위한 표준 질의어로 사용한다. SQL은 원하는 데이터가 무엇인지만 말하기 때문에 비절차적 데이터 언어의 특성을 띤다. SQL은 SEQUEL(Structured English QUEry Language) 에서 유래했으며 1986년 ANSI와 ISO에서 SQL을 관계 데이터베이스의 표준 질의어로 채택하고 표준화 작업을 진행하였다. 이후로 계속 개정을 거쳐 SQL:2022까지 발표되었다. SQL은 DBMS에 직접 접근하여 사용하거나 응용 프로그램에 삽입하여 사용할 수도 있다. SQL을 이용한 데이터 정의 테이블의 생성 CREATE TABLE 테이블_이름 ( 속성_이름 데이터_타입 [NOT NULL] [DEFAULT 기본_값]..

코딩 테스트

(Java) 프로그래머스 - 연속된 부분 수열의 합

문제를 읽고 완전 탐색은 인풋값이 크기 때문에 당연히 시간 초과가 난다고 생각해서 배제했다. 부분 수열 문제에서 O(N) 로직을 가지는 건 투포인터와 슬라이딩 윈도우인데, 이번 문제는 정렬되어 있고, 부분 수열의 길이가 가변적이니 투포인터를 사용했고 문제 조건에 맞게 저번 카카오 문제에서 썼던 Comparator를 사용하여 정렬하고 값을 리턴했다. 오랜만에 투포인터를 써서 더듬거리며 풀었지만 꽤 재미있었다. 최종 코드 import java.util.*; class Solution { public int[] solution(int[] sequence, int k) { int[] answer = new int[2]; List list = new ArrayList(); int start = 0; int end..

코딩 테스트

(Java) 프로그래머스 - 이모티콘 할인행사

문제를 읽고 대략적인 로직은 빠르게 세워졌지만 구현에는 꽤 많은 시간이 소요되었다. 인풋 값이 크지 않아서 시간 초과는 생각하지 않고 풀었다. 먼저 가능한 할인 조합을 만들고 users 배열과 emoticons 배열을 순회하며 계산후 result 배열에 담고 정렬해주었다. 총 1시간 정도 걸렸는데 풀이 시간을 더 빠르게 하고 싶다... 최종 코드 import java.util.*; class Solution { static List list; static int[] dis = new int[] {10,20,30,40}; public int[] solution(int[][] users, int[] emoticons) { int[] answer = new int[2]; list = new ArrayList(..

로승리
로이의 개발노트