Sonali Bank Assistant Database Administrator Exam 9 January 2026 — Question Solution | সোনালী ব্যাংক সহকারী ডাটাবেজ অ্যাডমিনিস্ট্রেটর নিয়োগ পরীক্ষা ২০২৬ — প্রশ্ন সমাধান
Page updated
ARBS Academy · itjobs.arbsacademy.com
About this exam paper · প্রশ্নপত্র পরিচিতি
The Sonali Bank Assistant Database Administrator exam was held on 9 January 2026. The paper had 13 written questions. The subjects asked most were Cyber Security (4), Algorithms (2) and Networking (2). This page lists every question, with 2 answered and explained; the rest of the answers open with a free ARBS Academy account, where the paper can also be practised as a timed test.
সোনালী ব্যাংক সহকারী ডাটাবেজ অ্যাডমিনিস্ট্রেটর নিয়োগ পরীক্ষার (২০২৬) এই প্রশ্নপত্রে ১৩টি প্রশ্ন ছিল, বেশিরভাগ সাইবার নিরাপত্তা ও অ্যালগরিদম থেকে। এখানে ২টি প্রশ্নের ব্যাখ্যাসহ উত্তর দেওয়া আছে; বাকিগুলো ফ্রি অ্যাকাউন্টে খোলে।
- Organisation
- Sonali Bank
- Post
- Assistant Database Administrator
- Exam date
- 9 January 2026
- Questions
- 13 (0 MCQ, 13 written)
- Exam guide
- Bank IT jobs · ব্যাংকের আইটি চাকরি
- Cyber Security · সাইবার নিরাপত্তা 4
- Algorithms · অ্যালগরিদম 2
- Networking · নেটওয়ার্কিং 2
- Bangla Writing · বাংলা লিখন 1
- English Writing · ইংরেজি লিখন 1
- Operating Systems · অপারেটিং সিস্টেম 1
- Programming · প্রোগ্রামিং 1
- Software Engineering · সফটওয়্যার ইঞ্জিনিয়ারিং 1
Given IP address 192.168.1.0, divide it into four subnets of equal size. (A) Find the new subnet mask (CIDR). (B) Find the first usable host address of each subnet.
You friend device is slow performing so what should you take step in your task manager
Suppose your workstation affect ransomware attack so what five step you take to mitigate this problem
What is Phishing? Describe different type of phishing attack
Sign up free to see the model answers to written questions 1–4 · উত্তর দেখতে বিনামূল্যে সাইন আপ করুন
What is dynamic programming? Describe its properties.
Model answer
Dynamic programming (DP) is an algorithm-design technique that solves a problem by breaking it into smaller overlapping subproblems, solving each subproblem only once, storing its answer in a table (or memo), and building the final answer from the stored answers. It turns many exponential-time recursive solutions into polynomial-time (or pseudo-polynomial-time) ones.
Properties of dynamic programming
- Optimal substructure: an optimal solution to the problem contains optimal solutions to its subproblems (Bellman's principle of optimality). Example: if the cheapest route Dhaka → Chattogram passes through Cumilla, its Dhaka → Cumilla part must itself be the cheapest Dhaka → Cumilla route.
- Overlapping subproblems: a plain recursion would solve the same subproblem again and again. (Divide and conquer, by contrast, splits into independent subproblems, as in merge sort.)
- Memory of results (memoization / tabulation): each subproblem's answer is saved and looked up later instead of being recomputed.
- Top-down (memoization): write the recursion and cache each result the first time it is computed.
- Bottom-up (tabulation): fill a table from the smallest subproblems upward.
- A recurrence relation: the answer of a state is defined from smaller states, with base cases.
- A manageable number of distinct states: the running time is (number of states) × (work per state), so DP is fast when the distinct states are few (for the coin example, A + 1 states with k checks each).
Example: minimum number of coins
Coins {1, 5, 7} (unlimited supply), amount 10. Let dp[a] = fewest coins that make amount a.
dp[0] = 0, dp[a] = 1 + min{ dp[a − c] : coin c ≤ a }
Overlapping subproblems in the plain recursion (part of the call tree):
graph TD
A10["coins(10)"] -- "use 1" --> A9["coins(9)"]
A10 -- "use 5" --> A5["coins(5)"]
A10 -- "use 7" --> A3["coins(3)"]
A9 -- "use 5" --> A4a["coins(4)"]
A5 -- "use 1" --> A4b["coins(4)"]
A9 -- "use 7" --> A2a["coins(2)"]
A3 -- "use 1" --> A2b["coins(2)"]
coins(4) and coins(2) are each reached by two branches. The plain recursion makes 43 calls for amount 10 and 34 309 calls for amount 30, while the DP table fills only 30 entries (dp[1] to dp[30]) with at most 3 checks each.
Bottom-up table:
| a | Candidates dp[a − c] + 1 | dp[a] |
|---|---|---|
| 0 | – | 0 |
| 1 | dp[0]+1=1 | 1 |
| 2 | dp[1]+1=2 | 2 |
| 3 | dp[2]+1=3 | 3 |
| 4 | dp[3]+1=4 | 4 |
| 5 | dp[4]+1=5, dp[0]+1=1 | 1 |
| 6 | dp[5]+1=2, dp[1]+1=2 | 2 |
| 7 | dp[6]+1=3, dp[2]+1=3, dp[0]+1=1 | 1 |
| 8 | dp[7]+1=2, dp[3]+1=4, dp[1]+1=2 | 2 |
| 9 | dp[8]+1=3, dp[4]+1=5, dp[2]+1=3 | 3 |
| 10 | dp[9]+1=4, dp[5]+1=2, dp[3]+1=4 | 2 |
Answer: 2 coins (5 + 5). The greedy rule "largest coin first" gives 7 + 1 + 1 + 1 = 4 coins, which is not optimal; DP checks every choice through the stored answers.
import math
def min_coins(coins, amount):
dp = [0] + [math.inf] * amount # dp[a] = fewest coins for amount a
last = [0] * (amount + 1) # last coin used, to rebuild the answer
for a in range(1, amount + 1):
for c in coins:
if c <= a and dp[a - c] + 1 < dp[a]:
dp[a] = dp[a - c] + 1
last[a] = c
picked, a = [], amount
while a > 0: # walk back through the table
picked.append(last[a])
a -= last[a]
return dp[amount], picked
print(min_coins([1, 5, 7], 10))
Output: (2, [5, 5])
Complexity: O(k · A) time and O(A) space for k coin types and amount A, against exponential time for the plain recursion.
| Basis | Divide and conquer | Greedy | Dynamic programming |
|---|---|---|---|
| Subproblems | Independent | One choice, no subproblem revisited | Overlapping |
| Stores results | No | No | Yes (table or memo) |
| Optimal answer | Yes, for its problems | Only when the greedy-choice property holds | Yes, when optimal substructure holds |
| Example | Merge sort | Activity selection | Knapsack 0/1, LCS, Floyd–Warshall |
Other standard DP problems: 0/1 knapsack, longest common subsequence, matrix-chain multiplication, edit distance, Floyd–Warshall all-pairs shortest paths.
Exam tip: name the two key properties (optimal substructure, overlapping subproblems), then show a recurrence and a filled table for one example.
What is programming? Give 4 example. Difference between structured and OOP programming
What is firewall? Difference between stateful inspection and new technology firewall (NTFW)
Sign up free to see the model answers to written questions 6–7 · উত্তর দেখতে বিনামূল্যে সাইন আপ করুন
Firewall rules Rules 1: A source destain B port is 89. Rules 2: A source destain B less than 443; Rules 3: A source destain B port is 443. So when a packet come form 443 is it accept or rejected the procedure “First inspection rules” explain it
Model answer
The rule set
Every rule is for traffic from source A to destination B and tests the destination port:
| Order | Source | Destination | Port condition | Action (assumed) |
|---|---|---|---|---|
| Rule 1 | A | B | port = 89 | allow |
| Rule 2 | A | B | port < 443 (0–442) | deny |
| Rule 3 | A | B | port = 443 | allow |
| (end) | any | any | anything else | implicit deny |
The rules as stated give no action, so the usual layout of such a rule set is assumed: a narrow allow (Rule 1), a broad deny (Rule 2) and an allow for HTTPS (Rule 3). For the port-443 packet only Rule 3's action matters, because Rules 1 and 2 do not match it, as the trace shows.
The "first match" inspection procedure
- The firewall reads the packet's header: source, destination, protocol and destination port.
- It compares the packet with the rules from the top, one by one, in order.
- A rule matches only if every field in it matches the packet.
- At the first matching rule, the firewall applies that rule's action (allow or deny) and stops; later rules are never checked.
- If no rule matches, the implicit default rule at the end (deny all) drops the packet.
Trace: packet A → B, destination port 443
| Step | Rule | Test | Result |
|---|---|---|---|
| 1 | Rule 1 | 443 = 89? | No match → go to next rule |
| 2 | Rule 2 | 443 < 443? | No match: "less than 443" covers ports 0–442 only, so 443 is not inside it |
| 3 | Rule 3 | 443 = 443? | Match → apply Rule 3's action, stop |
Verdict: the packet is decided by Rule 3, the first and only matching rule. Rule 3 is the allow rule for port 443, so the packet is ACCEPTED. The result is always Rule 3's own action: had Rule 3 been written as a deny rule, the same trace would end in REJECTED.
flowchart TD
P["Packet A to B, port 443"] --> R1{"Rule 1: port = 89?"}
R1 -- "No" --> R2{"Rule 2: port less than 443?"}
R1 -- "Yes" --> X1["Apply Rule 1, stop"]
R2 -- "No" --> R3{"Rule 3: port = 443?"}
R2 -- "Yes" --> X2["Apply Rule 2, stop"]
R3 -- "Yes" --> OK["Apply Rule 3: ACCEPT, stop"]
R3 -- "No" --> D["Implicit default: DENY"]
Simulation of first-match processing
RULES = [ # (name, src, dst, test on destination port, action)
("Rule 1", "A", "B", lambda p: p == 89, "ALLOW"),
("Rule 2", "A", "B", lambda p: p < 443, "DENY"),
("Rule 3", "A", "B", lambda p: p == 443, "ALLOW"),
]
def inspect(src, dst, dport):
for name, s, d, test, action in RULES: # top to bottom
hit = (s == src and d == dst and test(dport))
print(f" {name}: {'MATCH' if hit else 'no match'}")
if hit:
return f"{action} by {name}" # first match wins: stop here
return "DENY by the implicit default rule"
for port in (443, 89, 80, 8080):
print(f"Packet A -> B, destination port {port}")
print(" Result:", inspect("A", "B", port))
Output:
Packet A -> B, destination port 443
Rule 1: no match
Rule 2: no match
Rule 3: MATCH
Result: ALLOW by Rule 3
Packet A -> B, destination port 89
Rule 1: MATCH
Result: ALLOW by Rule 1
Packet A -> B, destination port 80
Rule 1: no match
Rule 2: MATCH
Result: DENY by Rule 2
Packet A -> B, destination port 8080
Rule 1: no match
Rule 2: no match
Rule 3: no match
Result: DENY by the implicit default rule
Why the order matters
- With these actions, port 89 is inside Rule 2's range (0–442), yet it is allowed, because Rule 1 is checked first. If Rule 1 were placed after Rule 2, port 89 would be denied.
- If Rule 2 were written ≤ 443, the port-443 packet would match Rule 2 first and be rejected; Rule 3 would then be shadowed (it could never be reached).
- So firewall rules are written specific first, general later, with deny-all at the end.
If "from 443" means source port 443
These rules test the destination port of traffic going A → B. A packet coming from port 443 is normally the reply of an HTTPS server B to A, i.e. traffic in the B → A direction, which matches none of these rules. A stateful firewall accepts it because it belongs to the connection A opened to B:443 (it is found in the state table); a stateless filter needs a separate return rule, otherwise the default deny drops it.
Exam tip: in first-match processing, check each condition literally ("< 443" excludes 443), stop at the first hit, and remember the hidden "deny all" at the end.
Define software testing level. show that unit, integration, system and user acceptance testing. How these are complemented of each other
ATM pin code flow chart (user input define). decision take (successful, failure)
What is DNS? How DNS work?
'নারী উদ্যোক্তা উন্নয়নে সামাজিক যোগাযোগ মাধ্যমের ভূমিকা' বিষয়ে বাংলায় একটি ফোকাস রাইটিং লিখুন।
Write a focus writing in English on 'Earthquake risk management and mitigation'.
Sign up free to see the model answers to written questions 9–13 · উত্তর দেখতে বিনামূল্যে সাইন আপ করুন
Explanations © ARBS Academy
Questions about this paper · সাধারণ প্রশ্ন
- How many questions were in the Sonali Bank Assistant Database Administrator exam (2026)?
- 13 written questions.
- Which subjects were asked most in the Sonali Bank Assistant Database Administrator exam (2026)?
- Cyber Security (4), Algorithms (2) and Networking (2), out of 13 questions.
- When was the Sonali Bank Assistant Database Administrator exam held?
- On 9 January 2026.
- Where can I find the Sonali Bank Assistant Database Administrator exam (2026) question solution?
- On this page: 2 of the 13 questions are shown with worked answers. The rest of the answers open with a free ARBS Academy account, where the paper can also be practised as a timed test.
Question text is from the public recruitment exam; answers and explanations are written by ARBS Academy. All past papers